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/