oracle 游标循环插入数据

lgq_liang 2015-11-21 08:45:44
这样写可以么,有什么问题呢 ,听说一个脚本里面最好只有一个 begin end块要好些,该怎么改
declare
cursor emp_cur is select * from emp;
emp_record varchar2(10);
begin
open emp_cur;
loop
fetch emp_cur into emp_record ;
exit when emp_cur%notfound;
for i in (select a from b where c=emp_record)
loop
begin
insert into c(m) values(a);
if mod(i,10000)=0 then --1万提交一次
commit;
end if;
exception
when others then
null;
commit;
end;
end loop;
end loop;
close emp_cur;
end;
...全文
384 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lgq_liang 2015-11-21
  • 打赏
  • 举报
回复
还不知道 ,没运行呢 ,只是在 txt里面写了个脚本,没执行过
卖水果的net 2015-11-21
  • 打赏
  • 举报
回复
听说一个脚本里面最好只有一个 begin end块要好些 没有上面这个说法! 你加多层 begin end ,是为了处理 异常的。 你现在这个语句有什么不对吗 ?
lgq_liang 2015-11-21
  • 打赏
  • 举报
回复
declare cursor emp_cur is select emp from emp; emp_record varchar2(10); begin open emp_cur; loop fetch emp_cur into emp_record ; exit when emp_cur%notfound; for i in (select a from b where c=emp_record) loop begign insert into c(m) values(i.a); exception when others then end; end loop; end loop; close emp_cur; end; 这个样子好些,没有环境。大概只能写成这样

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧