PL/SQL 记录集合IS TABLE OF的使用
来源:互联网 发布:java传智播客 百度云 编辑:程序博客网 时间:2024/06/06 15:54
在PL/SQL代码块中使用select into 赋值的话,有可能返回的是一个结果集。此时,如果使用基本类型或自定义的记录类型,将会报错。
因此,需要定义一个变量,是某种类型的集合。下面以一个基于表的行类型的集合为例简单介绍一下(相信基本类型同理吧)。
DECLARE CURSOR cur_tx IS SELECT GKEY from t ; SUBTYPE TX_TYPE IS t%ROWTYPE ; -- 定义类型 TYPE TX_TAB IS TABLE OF TX_TYPE;--定义新类型,是某个类型的集合 K t.GKEY%TYPE; V_Tx TX_TAB:=TX_TAB();--使用时应实例化,否则报错BEGIN OPEN CUR_TX; FETCH CUR_TX INTO K; SELECT * BULK COLLECT INTO V_Tx FROM t WHERE gkey=K; --返回结果集 FORALL x in V_Tx.first .. V_Tx.last--遍历操作 -- statement; CLOSE CUR_TX;END;
集合类型要用IS TABLE OF来定义,表示是一个集合。
/*在使用时,一定要实例化,否则报错:local collection types not allowed in SQL statements. 还表示collection type应该是schema级的才能使用。*/
(注:经检查,与实例化无关,与select into时要使用bulk collect 有关)
当然也可以使用游标,将结果集放在游标中。这里只是提供另一种思路。
这里提到了BULK COLLECT和FORALL 批量绑定检索。
FORALL与BULK COLLECT的使用方法:
1.使用FORALL比FOR效率高,因为前者只切换一次上下文,而后者将是在循环次数一样多个上下文间切换。
2.使用BLUK COLLECT一次取出一个数据集合,比用游标条取数据效率高,尤其是在网络不大好的情况下。但BLUK COLLECT需要大量内存,因此最好确保每次取出的记录不会很多。
0 0
- PL/SQL 记录集合IS TABLE OF的使用
- PL/SQL 记录集合IS TABLE OF的使用
- PL/SQL:记录 / 集合例子
- Oracle中IS TABLE OF的使用
- PL/SQL 嵌套记录与记录集合
- PL/SQL嵌套记录与记录集合
- pl/sql中使用table()函数的例子
- 第五章 PL/SQL集合与记录
- 第五章 PL/SQL集合与记录
- PL/SQL复合数据类型(集合与记录)
- 源码-Oracle数据库管理-第十四章-记录与集合-Part 1(使用PL/SQL记录)
- 源码-Oracle数据库管理-第十四章-记录与集合-Part 2(使用PL/SQL记录)
- PL/SQL集合的区别
- PL/SQL 集合的方法
- PL/SQL 集合的方法
- Oracle PL/SQL 中内嵌集合对象的使用
- PL/SQL学习:FORALL语句与集合的使用
- PL/SQL每日一题:TABLE()和集合类型定义
- Java数组操作的10大方法
- Maven环境的搭建&&Maven Eclipse插件的安装
- max_flow(Dinic)
- NotServingRegionException: Region is not online 错误总结
- 求小球落地5次后所经历的路程和第5次反弹的高度
- PL/SQL 记录集合IS TABLE OF的使用
- eclipse产生错误:Unable to execute dex: GC overhead limit exceeded
- 位域介绍
- opencv3.0+java 学习笔记(一) 环境搭建
- 源码换iPhone6,这活动这么屌 我家里人都不知道?
- 摄氏度华氏度转换(java)
- PING协议
- hbase过滤查询的两种方式
- 撒个撒大哥十大撒旦撒大哥撒大哥