- 浏览: 2290098 次
- 性别:
- 来自: 成都
文章分类
- 全部博客 (357)
- J2EE (49)
- JavaScript (40)
- Spring (19)
- Struts (5)
- CSS (8)
- Hibernate (16)
- Java (67)
- DWR (4)
- JSON (3)
- XFIRE (1)
- Tomcat (1)
- Ant (2)
- 设计模式 (2)
- 经典收藏 (2)
- JSP (10)
- Linux (0)
- WebLogic (11)
- myeclipse (13)
- Buffalo (4)
- 文件上传相关 (1)
- oracle (33)
- html (6)
- JSTL (3)
- SVN (2)
- GIT (1)
- 孙卫琴(Java网络编程精解) (1)
- DOM4J (2)
- Swing (1)
- AJAX (1)
- Eclipse (5)
- 日志组件 (3)
- PowerDesigner (1)
- Jquery (22)
- IT技术开发相关网址 (1)
- Nutz (1)
- 其它 (1)
- Velocity (3)
- WebService (1)
- MySql (2)
- Android (1)
- Maven (2)
- Quartz (11)
- Lucene (1)
- springsource (1)
- Junit (1)
- Activiti (0)
最新评论
-
yzlseu:
拼凑,没有营养
Activiti进阶—分配组任务 -
zhangsenhao:
非常赞!代码很清楚
SpringMVC3.0+MyIbatis3.0(分页示例) -
xiamw2000:
分页写得不对,应该是 : order by ${orderNa ...
SpringMVC3.0+MyIbatis3.0(分页示例) -
sheertewtw:
...
SpringMVC:上传与下载 -
kingtoon:
...
XSS之xssprotect
参考资料
1 ORACLE 存储过程返回临时表结果集
http://hi.baidu.com/h_sn999/blog/item/4211810f4d7542fdaa645738.html
2 ORACLE 在存储过程中使用临时表
http://blog.csdn.net/wekily/article/details/6120900
3 Oracle存储过程中创建临时表<原创>
http://blog.sina.com.cn/s/blog_4c7ae2a80100bki3.html
4 在ORACLE存储过程中创建临时表
http://huqiji.iteye.com/blog/782067
总结如下:
DDL是一种消耗资源非常大的操作,运行时尽量不要使用DDL语句,应用程序需要的临时表应在运行之前就开始创建。不必在每个存储过程中创建一次。临时表总是存在的,他们作为对象存在于数据字典中,并且总是保持为空,直到有会话在其中放入数据
1 创建临时表
2 创建存储过程
参考更多
1 创建临时表,插入数据,返回结果集
2 调用存储过程
1 ORACLE 存储过程返回临时表结果集
http://hi.baidu.com/h_sn999/blog/item/4211810f4d7542fdaa645738.html
2 ORACLE 在存储过程中使用临时表
http://blog.csdn.net/wekily/article/details/6120900
3 Oracle存储过程中创建临时表<原创>
http://blog.sina.com.cn/s/blog_4c7ae2a80100bki3.html
4 在ORACLE存储过程中创建临时表
http://huqiji.iteye.com/blog/782067
总结如下:
DDL是一种消耗资源非常大的操作,运行时尽量不要使用DDL语句,应用程序需要的临时表应在运行之前就开始创建。不必在每个存储过程中创建一次。临时表总是存在的,他们作为对象存在于数据字典中,并且总是保持为空,直到有会话在其中放入数据
1 创建临时表
create global temporary table 表名 ( ID VARCHAR2(100 CHAR), NAME VARCHAR2(100 CHAR) ) on commit preserve rows;
2 创建存储过程
create or replace procedure proc_XXX( mycur out SYS_REFCURSOR as TYPE My_CurType IS REF CURSOR; CUR_1 My_CurType; tempa varchar2; tempb varchar2; --此处可声明更多变更^_^ begin OPEN CUR_1 FOR select * from 表名; --使用前先清空 execute immediate 'truncate table 临时表表名'; LOOP FETCH CUR_1 INTO tempa; EXIT WHEN CUR_1%NOTFOUND; --进行相关的业务查询,将结果返回于更多变量上,插入临时表数据 tempa:='1'; tempb:='jack'; insert into 临时表表名(ID,NAME)values(tempa,tempb); commit; end loop; open mycur for select * from 临时表表名; CLOSE CUR_1; message :='查询临时表成功'; EXCEPTION WHEN OTHERS THEN message :='查询临时表失败'; end proc_XXX;
参考更多
1 创建临时表,插入数据,返回结果集
CREATE OR REPLACE PROCEDURE Report_Month_Responsibility( o_cur OUT SYS_REFCURSOR ) IS STR VARCHAR2(200); tb_count INT; BEGIN --先判断全局临时表是否存在,没存在则重新建立: select count(*) into tb_count from dba_tables where table_name='REPROTTEST'; if tb_count=0 then STR:=' CREATE GLOBAL TEMPORARY TABLE REPROTTEST( ID INT, ANAME VARCHAR2(20) ) ON COMMIT PRESERVE ROWS'; execute immediate STR; end if; STR:='INSERT INTO REPROTTEST(ID,ANAME) VALUES(1,''1'')'; execute immediate STR; COMMIT; STR:='SELECT * FROM REPROTTEST'; OPEN o_cur FOR STR; -- 给游标变量赋值 END Report_Month_Responsibility;
2 调用存储过程
CREATE OR REPLACE PROCEDURE proc_X() IS v_ID INT; v_ANAME VARCHAR2(20); --定义游标: v_account_cur SYS_REFCURSOR; BEGIN --调用存储过程: Report_Month_Responsibility(v_account_cur); fetch v_account_cur into v_ID,v_ANAME; --用循环显示游标中的记录: while v_account_cur%found loop dbms_output.put_line('The value of column ID is: '||v_ID);--打引列ID dbms_output.put_line('The value of column ANAME is: '||v_ANAME); --打引列ANAME fetch v_account_cur into v_ID,v_ANAME; end loop; close v_account_cur; execute immediate 'truncate TABLE REPROTTEST'; end proc_X;
发表评论
-
oracle之INSTR函数
2011-10-13 15:33 18参考资料 1 Oracle的instr函数 http://kn ... -
oracle之DECODE()函数
2011-10-13 10:12 1447参考资料 1 oracle中的DECODE()函数 http: ... -
oracle之删除临时表(14452)
2011-09-22 11:25 2919参考资料 1 Oracle临时表删除时的ORA-14452错误 ... -
oracle之truncate && delete
2011-09-22 09:19 2923参考资料 实例对比Oracle ... -
oracle之临时表
2011-09-20 14:49 1405参考资料 1 Oracle 临时表用法 http://www. ... -
oracle之随机数(结果集)
2011-09-20 11:32 2176参考资料 Oracle中随机抽 ... -
转载:本地每天定时备份数据库
2011-09-15 12:52 1294转载: 本地每天定时备份数据库 http://relic6.i ... -
Oracle之instr(字符串包含函数)
2011-07-29 11:01 49301参考资料 1 oracle函数大 ... -
oracle中关于in和exists,not in 和 not exists用法与区别
2011-06-27 10:25 4061参考资料 1 oracle中关于in和exists,not i ... -
Oracle:递归查询SQL
2011-05-06 16:59 2064有部门表: ID,PID --查询所有 select cou ... -
Oracle:行转列函数,查询重复记录函数,过滤表中重复记录函数
2011-04-28 11:34 28161 行转列函数: select wm_concat(usern ... -
Oracle:创建序列与触发器
2011-04-15 14:41 18291 创建序列(为触发器提供服务) create seque ... -
Navicat for Oracle Cannot load OCI DLL
2011-04-12 14:34 19175参考资料 Navicat for Oracle Cannot ... -
oracle: if...elseif...else用法
2011-03-31 16:38 15189参考资料 1 <转载>oracle存储过程中的if ... -
Oracle 自动生成 32位ID
2011-03-11 11:27 56041 code select SUBSTR(TO_CHAR ... -
Oracle split(分隔字符串函数)
2011-03-11 10:57 15436一 Oracle版本: 10g PLSQL: 8.0 二 具体 ... -
Oracle内连接、左外连接、右外连接、全外连接小总结
2011-01-24 11:11 13775转载:Oracle内连接、左外连接、右外连接、全外连接小总结 ... -
64位windows7 上安装32位oracle 10g 的方法
2010-12-23 12:17 3941转载:64位windows7 上安装32位oracle 10g ... -
Oracle 表解锁
2010-12-07 15:43 1583转载:Oracle 表解锁 http://toyota2006 ... -
Oracle字符串函数
2010-12-06 13:21 2706转载:Oracle字符串函数 ...
相关推荐
本篇文章将深入探讨如何使用Java调用Oracle存储过程,并通过游标获取存储过程中返回的临时表数据。 首先,Oracle存储过程是一种在数据库端执行的预编译SQL语句和PL/SQL代码集合。它可以接收参数、执行业务逻辑并...
给定的存储过程“UpdateTempInventoryM”旨在更新一个名为“tmp_inventorym”的临时表,该表汇总了不同业务操作(如收货、发货、借出等)后的库存状态。过程接收五个参数:`DateMMin`、`HasBlin`、`HasQtyin`、`...
以下是一个简单的示例,展示了如何在存储过程中使用临时表返回结果集: ```sql CREATE OR REPLACE PROCEDURE get_data(p_id IN NUMBER, c OUT SYS_REFCURSOR) AS TYPE data_table_type IS TABLE OF your_table%...
根据提供的Oracle存储过程示例,我们可以详细解析其中的关键知识点,包括存储过程的创建、游标的使用、临时表的创建及数据处理等。 ### 存储过程的创建与使用 存储过程是在数据库中编写的SQL代码块,它可以接受...
- **示例目的**:查询部门10的所有雇员的姓名和工资,并将这些信息插入到一个临时表`tmp`中。 - **表结构**:`tmp`表结构为`t1 char(20), t2 number(10)`。 - **实现方式**:使用三种不同的循环方法实现。 通过上述...
### Oracle存储过程的基本语法知识点详解 #### 一、Oracle存储过程概述 Oracle存储过程是一种预编译的SQL脚本集合,它可以包含复杂的控制流逻辑、数据处理操作等,并且能够被其他应用程序或用户通过简单的调用来...
Oracle 存储过程是数据库管理中的一个重要组成部分,它允许开发者编写复杂的SQL和PL/SQL代码,然后在数据库中以函数或程序的形式存储和调用。在处理大量数据时,分页查询是必不可少的,它可以有效地减少网络传输的...
- **游标**是一种内存工作区,用于临时存储从数据库中提取的数据块。 - 数据处理速度得以提升的原因在于,通过将数据从磁盘加载到内存中,减少了频繁的磁盘I/O操作,从而提高了数据处理的效率。 ##### 1.2 游标分类...
它主要用于临时存储从数据库中提取的数据块。当需要将数据从磁盘上的表移动到计算机内存中进行处理时,使用游标可以显著提高数据处理的速度,因为直接在内存中处理数据比频繁与磁盘交换数据要快得多。 #### 三、...
在Oracle数据库系统中,"pkg_XXX.rar_oracle_oracle record cursor" 提供了一个学习和参考的案例,涉及到了存储过程、游标(cursor)、记录(record)以及动态SQL和临时表的使用。这些概念是Oracle数据库编程的核心...
游标(Cursor)是一种临时的工作单元,用于存储从数据库中提取的数据块。这些数据块可以在内存中被处理,然后再将处理后的结果输出或写回到数据库中。使用游标可以显著提高数据处理速度,因为直接在内存中处理数据比...
2. 创建一个临时表,让存储过程将结果写入临时表,然后在Java中通过查询临时表获取数据。 3. 如果可能,修改存储过程,使其返回XML或JSON格式的数据,然后在Java中解析这些格式的数据。 总的来说,调用Oracle存储...
总的来说,Oracle存储过程结合临时表和游标,可以有效地生成横向报表,尤其适用于需要复杂计算和汇总的情况。在实际开发中,可以根据业务需求调整和优化上述步骤,以实现更高效和灵活的报表生成方案。
Oracle存储过程是数据库管理系统Oracle中的一个重要特性,它允许开发者编写一系列的SQL和PL/SQL语句,形成一个可重用的代码块。这种代码块可以包含数据查询、更新、事务处理等多种数据库操作,并且能够被单独调用...
- 对象命名应遵循一定的规则,如模块代码开头的存储过程,全局使用前缀为`global`,变量以`v_`开头,游标以`c_`开头,内存表以`m_`开头,临时表以`t_`开头。 - 遵循一致的命名约定,如全量和增量标识,可以使用...
在某些场景下,可能需要在 Oracle 和 Access 之间进行数据迁移,比如整合数据、备份或临时数据存储。本文将详细讲解如何在 Oracle 的 FORM 程序中实现这两个系统之间的数据导入和导出。 首先,为了在 Oracle 和 ...
总之,Oracle带输入输出参数的存储过程能灵活地处理复杂的数据操作,并通过临时表实现高效的数据筛选和分页。这种技术对于提高数据库性能、降低网络传输负担以及简化业务逻辑都有显著作用。在实际应用中,可以根据...
在Oracle数据库环境中,可以通过多种方式来实现这一目标,包括编写存储过程、使用游标、创建临时表等方法。本文将重点介绍如何运用Oracle中的`MINUS`函数和`OVER`函数,通过构建视图的方式来直接比较两个记录集的...
为了实现高效的分页查询,可以使用存储过程结合游标或临时表。 示例: ```sql CREATE OR REPLACE PROCEDURE get_paged_data ( page_number IN NUMBER, page_size IN NUMBER, data_out OUT SYS_REFCURSOR ) AS ...