plsql过程中的异常处理,以处理给出唯一约束的插入

时间:2017-07-07 05:27:04

标签: plsql exception-handling plsqldeveloper

我有一个有多个插入的sql,但是当我运行时,它为第一个插入提供了唯一约束....并且sql正在跳过其他插入。可以帮助我解决此方案的异常处理。

1 个答案:

答案 0 :(得分: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;