plsql 过程中的异常处理以处理提供唯一约束的插入
Posted
技术标签:
【中文标题】plsql 过程中的异常处理以处理提供唯一约束的插入【英文标题】:exception handling in plsql procedure to handle insert giving unique constraint 【发布时间】:2017-07-07 05:27:04 【问题描述】:我有一个有多个插入的 sql,但是当我运行它时,它为第一个插入提供了唯一的约束......并且 sql 正在跳过其他插入。你能帮我处理这种情况的异常处理吗?
【问题讨论】:
见***.com/questions/22175894/… (Oracle SQL) Catching a unique constraint error的可能重复 “一个 sql”是指 PL/SQL 过程还是多表插入语句? docs.oracle.com/database/121/SQLRF/statements_9015.htm#i2125362 【参考方案1】:您需要使用异常处理程序将插入语句包装在 BEGIN/END 块中以捕获 DUP_VAL_ON_INDEX
异常。在那里你可以做任何你需要做的事情或忽略错误。
BEGIN
-- first insert
BEGIN
Insert into myTab(ID,NAME) values (1,'name1');
EXCEPTION
when DUP_VAL_ON_INDEX then
null; -- do something or ignore the error
END;
-- second insert
BEGIN
Insert into myTab(ID,NAME) values (2,'name2');
EXCEPTION
when DUP_VAL_ON_INDEX then
null; -- do something or ignore the error
END;
END;
【讨论】:
以上是关于plsql 过程中的异常处理以处理提供唯一约束的插入的主要内容,如果未能解决你的问题,请参考以下文章