oracle 集合

索引表
下标能为负,个数不限的数据类型
语法:
TYPE type_name is table of element_type
[not null]index by key-type
key-type表示下标的数据类型,oracle索引表的下标支持BINARY_INTEGER,PLS_INTEGER,VARCHAR2
DECLARE
TYPE TABLE_TYPE IS TABLE OF VARCHAR2(20)
INDEX BY BINARY_INTEGER;
MYTYPE TABLE_TYPE;
BEGIN
SELECT NAME INTO MYTYPE(-1) FROM KT WHERE ID=1;
DBMS_OUTPUT.PUT_LINE(MYTYPE(-1));
END;

无限个数,下标可以为fu
嵌套表
下标从1开始,并且个数不受限制,嵌套表可以是稀疏的。所谓稀疏意思是表下标对应的内容部一定都存在
语法:
TYPE type_name is table of element_type;
嵌套表在使用之前,必须先进行构造函数初始化,这点与索引表不同。
DECLARE
TYPE TABLE_TYPE IS TABLE OF KT.NAME%TYPE;
MYTYPE TABLE_TYPE;
BEGIN
MYTYPE:=TABLE_TYPE('TIGER','TIGER','TIGER');
SELECT NAME INTO MYTYPE(2) FROM KT WHERE ID=1;
DBMS_OUTPUT.PUT_LINE(MYTYPE(2));
END;
嵌套表不仅可以在PL/SQL中使用,还可以作为表的一列使用。
在作为表的列使用时,必须使用CREATE TYPE TABLE_TYPE IS TABLE OF element_type;
并且要为嵌套表列指定专门的存储表。
CREATE TABEL TEST(ID NUMBER(3),NAME VARCHAR2(20),
MYTYPE TABLE_TYPE
)NESTED TABLE MYTYPE STORE AS MYTYPE_TABLE;
为嵌套表列插入数据时,使用构造函数
BEGIN
INSERT INTO TEST VALUES(1,'SCOTT',TABLE_TYPE('TIGER','TIGER'))
END;


变长数组 varray
元素下标从一开始,并且元素个数是有限制的
TYPE TYPE_NAME IS VARRAY(SIZE_LIMIT) OF ELEMENT_TYPE[NOT NULL];
在使用时,必须先调用构造函数进行初始化。
也可以作为表列使用,用法与嵌套表类似
记录表
记录表是用来处理多行多列数据的
TYPE TYPE_NAME IS TABLE OF TABLE%ROWTYPE
INDEX BY BINARY_INTEGER;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值