今天项目突然要用到游标,好久没有使用了有些生疏,在使用中发现以前没注意的一些问题,先贴上代码
Procedure p_insert_wzdeqd(abc Varchar2,sj Varchar2)
Is
v_temp varchar2(30);
v_flows_user wz_dewzqd_mb%rowtype;
Cursor flows_user is select xh,mc,gg,dw,dezb,sybm from wz_dewzqd_mb where wz_dewzqd_mb.sybm=abc ;
Begin
open flows_user;
loop
fetch flows_user into v_flows_user;
exit when flows_user%notfound;
-- select substr(to_char(systimestamp, 'yyyymmddhh24missff'), 1, 16) into v_temp from dual;
insert into wz_dewzqd (xh,mc,gg,dw,dezb,sybm,yf) values(hmwz.nextval,v_flows_user.mc,v_flows_user.gg,v_flows_user.dw,v_flows_user.dezb,abc,to_date(sj,'yyyy-mm'));
v_temp:='';
commit;
end loop;
if flows_user%isopen then
Close flows_user;
end if;
End;
使用中发现如下问题:
1.在循环中由于执行速度过快,无法用时间戳或者查询语句去生成主键,开始不停的报主键重复错误郁闷。
2.参数名不能和表名的列名重复,容易造成无法读取
本文分享了一段使用PL/SQL游标进行数据插入的代码示例,并在使用过程中遇到了两个主要问题:一是循环中因执行速度过快无法生成唯一主键导致重复;二是参数名与表列名重复引起的数据读取问题。
670

被折叠的 条评论
为什么被折叠?



