oracle bulk collect into 实现批量插入
- 语法:
fetch
游标bulk collect into
目标[limit num]
*** 不加limit
默认取游标中全部数据插入到目标中,如果加上limit,则限制数据量
- 示例
表结构:
declare
type tb_type is table of sales%rowtype; --声明一个表类型 tb_type
cursor mycursor is select productname from sales; --定义一个游标
my_tb tb_type; --定义一个表类型变量
type name_list_type is table of sales.productname%type; --定义一个表类型
name_list name_list_type; --定义一个表类型变量(只有一列)
begin
open mycursor;
loop
fetch mycursor bulk collect into name_list limit 3; --用 bulk collect into 实现批量插入, 加 limit num 可以限定插入行数
for it in 1..name_list.count loop
dbms_output.put_line(name_list(it)); --这里访问数组使用 数组(索引)
end loop;
dbms_output.put_line('-----------');
exit when mycursor%notfound;
end loop;
close mycursor;
end;
- 结果
篮球
足球
羽毛球
·-----------
乒乓球
泰迪熊
·-----------