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开始,连续地插入元素。