PL/SQL之集合---笔记

PL/SQL表-----定义

TYPE name_table_type  IS TABLE OF ELEMENT_TYPE INDEX BY  BINARY_INTEGER||PLS_INTEGER||VARCHAR2;

嵌套表-------定义         TYPE name_table_type IS TABLE OF ELEMENT_TYPE ;

VARRAY -------定义         TYPE name_array_type IS TABLE OF ELEMENT_TYPE;

PL/SQL记录表 -------定义           TYPE name IS TABLE OF emp%TYPE

======================================================================================

PL/SQL表-----下标可以为负,长度无限制

嵌套表-------下标从1开始,长度无限制,须初始化

VARRAY -------下标从1开始,限制长度,须初始化

======================================================================================

集合方法:collection_name.method(param)

EXISTS,COUNT,FIRST/LAST,PRIOR/NEXT -------------all

LIMIT:返回集合最大元素个数。pl/sql表和嵌套表返回NULL,适用于VARRAY

EXTEND:给集合增加元素,须初始化,适用于嵌套表和VARRAY

TRIM:删除集合尾部元素,适用于嵌套表和VARRAY;

DELETE:删除集合特定元素,适用于嵌套表和pl/sql表

======================================================================================

批量绑定:

BULK COLLECT:适用于SELECT INTO,FETCH INTO,DML返回子句

......BULK COLLECT INTO  array_name....

FORALL:插入,更新,删除

FORALL index IN lower_bound....upper_bound

sql_statement;

INDICES OF:跳过null元素

FORALL index IN INDICES OF collection

sql_statement;

VALUES OF:从其他PL/SQL集合变量中取得集合下标值

FORALL index IN VALUES OF collection

sql_statement;

====================================================================================

集合赋值

10g开始:

集合1:=集合2

对于嵌套表:

nt1 :=SET(nt2)

nt1 :=nt1 MULTISET UNION nt2

nt1:=nt1 MULTISET DISTINCT nt2

nt1:=nt1 MULTISET INTERSECT nt2

nt1:=nt1 MULTISET EXCEPT nt2

=====================================================================================

集合比较:

IS NULL:嵌套表 or VARRAY

IS EMPTY:嵌套表

对于嵌套表:

=,!=,cardinality(nt1),submiltiset of, member of ,is a set

===================================================================================

集合嵌套:

嵌套VARRAY,嵌套嵌套表,嵌套PL/SQL表

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/20941140/viewspace-558198/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/20941140/viewspace-558198/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值