A表字段a1,a2,a3,a4.
B表字段b1,b2,b3现在要把A表的一条记录拆成两条插到B表里也就是说对每一条A表记录,实行
insert A(a1,a2,a4) into B(b1,b2,b3)
insert A(a1,a3,a4) into B(b1,b2,b3)这个存储过程如何实现?
B表字段b1,b2,b3现在要把A表的一条记录拆成两条插到B表里也就是说对每一条A表记录,实行
insert A(a1,a2,a4) into B(b1,b2,b3)
insert A(a1,a3,a4) into B(b1,b2,b3)这个存储过程如何实现?
select a1,a2,a3,a4 from TABLE1
';
loop
fetch mycursor into col1, col2, col3, col4;--把游标中的数据存入变量,可以有多个变量
if mycursortest%found then --如果找到数据,找不到数据为notfound
insert into TABLE2
(b1,b2,b3
) values
(col1,col2,col4
);
insert into TABLE2
(b1,b2,b3
) values
(col1,col3,col4
);
else
dbms_output.put_line
(
'处理完毕'
)
;
exit;--退出循环
end if;
end loop;
close mycursortest;--关闭游标
insert A(a1,a2,a4) into B(b1,b2,b3)
insert A(a1,a3,a4) into B(b1,b2,b3)楼主 你的意思是把A表的每条记录的第1,2,4和 第1,3,4列分别插入到B表中吧。。
貌似我没理解错
有几个例子就好多了,谢谢
as
var_cur sys_refcursor;
var_rec A%ROWTYPE;
begin
open var_cur for select a1,a2,a3,a4 from A;
loop
fetch var_cur into var_rec;
exit when var_cur%NOTFOUND; insert into B(b1,b2,b3) values (var_rec.a1,var_rec.a2,var_rec.a4);
insert into B(b1,b2,b3) values (var_rec.a1,var_rec.a3,var_rec.a4);
end loop;
close var_cur;
dbms_output.put_line('done!');
exception when others then
raise;
end;