SELECT INTO语句¶
语法:
... BULK COLLECT INTO collection_name[, collection_name] ...
PLOSCAR能批量绑定出现在INTO列表后的所有集合。对应的字段可以保存为标量类型或复合类型的值,绑定的类型不能超出集合类型支持的元素类型。
在下面的例子中,利用BULK COLLECT语句将完整的id和name绑定到嵌套表idt和namet中
-- 清理环境
DROP TABLE tab;
CREATE TABLE tab
(
ID INTEGER,
NUM INTEGER,
NAME VARCHAR2(15)
);
INSERT INTO tab VALUES(1, 11,'1A');
INSERT INTO tab VALUES(2, 22,'2B');
INSERT INTO tab VALUES(3, 33,'3C');
INSERT INTO tab VALUES(4, 44,'4D');
INSERT INTO tab VALUES(5, 55,'5E');
DECLARE
TYPE idtab IS TABLE OF tab.ID%TYPE;
TYPE nametab IS TABLE OF tab.NAME%TYPE;
idt idtab;
namet nametab;
BEGIN
SELECT ID, NAME BULK COLLECT INTO idt, namet FROM tab;
END;
/
--删除
DROP TABLE tab;
PLOSCAR会为我们初始化和扩展集合(但是,它不能把变长数组的长度扩大到超过变长数组的最大长度值)。然后从索引1开始,连续地插入元素。