Bulk Collect 使用说明

oracle bulk collect into 实现批量插入

  • 语法:
    fetch 游标 bulk collect into 目标 [limit num]

*** 不加limit 默认取游标中全部数据插入到目标中,如果加上limit,则限制数据量

  • 示例
    表结构:
    image

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;
  • 结果

篮球
足球
羽毛球
·-----------
乒乓球
泰迪熊
·-----------

posted @ 2023-04-24 10:24  丹心石  阅读(393)  评论(0)    收藏  举报