这段时间在学习PL/SQL的一些集合类型,
在PL/SQL中的集合类型包括:
1,记录类型:
示例:
TYPE my_rcord_type IS RECORD(param1 type,.......)
2,表类型,我的理解就像是高级语言中的数组,不过这数组的下标可以是负数,还可以是字符串,等等.
示例:
TYPE my_table_type IS table OF [type] INDEX BY BINARY_INTEGER,这个BINARY_INTEGER还可以用VARCHAR2,PLS_INTEGER来代替.
3,嵌套表类型,嵌套表的下标必须以1开始,并且元素个数没有限制,可以嵌套在表中使用
示例:
TYPE my_table_type IS TABLE OF [type]
下面是一个在表中使用的示例:
CREATE OR REPLACE my_table_type is TABLE OF VARCHAR(30);
CREATE TABLE ex(my_table my_table_type)NESTED TABLE my_table STORE AS my_table_type;
INSERT INTO ex values(my_table_type('1','2',....));
4,变长数组VARRAY,
在使用VARRY时必须先初始化然后再使用,且下标以1开始,数组的个元素个数用.count来表示
示例:
type my_varray_type is VARRAY of emp.ename%type;
my_varray my_varray_type:=my_vaaray_type('0');
my_varray.count表示其元素的个数
5,记录表.
其实记录表就相当于高级语言中的二维数组,用来描述一张二维表,
示例:
type my_recordtable_type is table of emp%rowtype INDEX BY BINARY_INTEGER;--注意:是rowtype而不是type