类型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);
原创:转载请说明出处及作者。