Oracle 绑定多变量 批量插入

类型1:多变量绑定,最佳方法

declare
i number;
j number;

Cursor my_cursor is select role_id,business_id from FUNC_BUSI;
begin
   open my_cursor;
    LOOP
    fetch my_cursor into i,j;
     exit when my_cursor%NOTFOUND;
 insert into SEC_ROLE_GRANT (
   ROLE_GRANT_ID,ROLE_ID,ENT_ID)
values (kf_contact.sec_role_grant$seq.nextval,i,j);
  end loop;
  close my_cursor;
end;

说明:表1--FUNC_BUSI,保存变量的组合数据,即最终要导入的数据;

        表2--SEC_ROLE_GRANT,最终要插入的表。

多变量时需要用到游标。

类型2:单变量绑定,使用数组插入

declare
TYPE i IS varray(50) of NUMBER;
var_array i:=i(1,2);
begin
 
  for  i in 1..var_array.count LOOP
  insert into kf_contact.sec_role_grant (
   ROLE_GRANT_ID,
   ROLE_ID,
   PRIV_ID,
   ENT_ID
)
values (
   kf_contact.sec_role_grant$seq.nextval,
   i,
   1,
   1008);
  end loop;

end;

类型3:多变量绑定,但需要手动一条条插入数据

insert into sec.sec_role_grant
  (ROLE_GRANT_ID,
   ROLE_ID,
   PRIV_ID,
   ENT_ID)
values
  (sec.sec_role_grant$seq.nextval,
   &role_id,
   1,
   &business_id);

原创:转载请说明出处及作者。

转载于:https://www.cnblogs.com/ningxu/p/3471717.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值