orcal 存储过程 更新数据时,违反唯一约束怎么在存储过程添加异常处理将这条记录删除,然后在继续执行!

CREATEORREPLACEPROCEDUREHB_ID(OPIDINVARCHAR2,OVIDINnumber,NPIDINVARCHAR2,NVIDINnumber... CREATE OR REPLACE PROCEDURE HB_ID(OPID IN VARCHAR2,OVID IN number,NPID IN VARCHAR2,NVID IN number)IS
V_CURSQL VARCHAR2(1000);
V_SQLCURSOR SYS_REFCURSOR;
TBL_NAME VARCHAR2(100);
PID_COL VARCHAR2(100);
VID_COL VARCHAR2(100);
UPDATESQL VARCHAR2(1000);
cnt integer;
BEGIN
V_CURSQL :='SELECT T.TBL_NAME,T.PID_COL,T.VID_COL FROM MNR_TY_CFG_TBL T';
cnt :=1;
OPEN V_SQLCURSOR FOR V_CURSQL;
LOOP
FETCH V_SQLCURSOR
INTO TBL_NAME,
PID_COL,
VID_COL;
dbms_output.put_line(to_char(SYSDATE,'hh24:mi:ss'));
UPDATESQL :='UPDATE '||TBL_NAME||' SET '||PID_COL||'='''||NPID||''' , '||VID_COL||'='||NVID||'
WHERE '||PID_COL||'='''||OPID||''' AND '||VID_COL||'='||OVID||'';
EXECUTE IMMEDIATE UPDATESQL;
COMMIT;
dbms_output.put_line(to_char(SYSDATE,'hh24:mi:ss'));
cnt :=cnt+1;
EXIT WHEN V_SQLCURSOR%NOTFOUND;
END LOOP;
CLOSE V_SQLCURSOR;
END HB_ID;
展开
 我来答
wengbip084
2016-09-08 · TA获得超过202个赞
知道答主
回答量:327
采纳率:0%
帮助的人:72万
展开全部
同一个oracle数据库session内,对表进行update、insert、delete都是可以进行数据操作的。假设把某字段update成了1,则后续select此字段时,值即为 1 。 也就是说 对update后的数据进行后续操作是完全可以的。 建表后对表操作是不行的,这个具体....
追问
你在说什么?完全没有用
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式