2
鑑於此示例(DUP_VAL_ON_INDEX Exception),是否有可能捕獲違反約束的值以便它們可能被記錄?捕獲觸發DUP_VAL_ON_INDEX的值
如果存在由批量插入生成的多個違規,那麼方法是否相同?
BEGIN
-- want to capture '01' and '02'
INSERT INTO Employee(ID)
SELECT ID
FROM (
SELECT '01' ID FROM DUAL
UNION
SELECT '02' ID FROM DUAL
);
EXCEPTION
WHEN DUP_VAL_ON_INDEX THEN
-- log values here
DBMS_OUTPUT.PUT_LINE('Duplicate value on an index');
END;
:是的,這種方法可以正常工作,但是使用':New。',這是'unique',你發現可能會拋出'DUP_VAL_ON_INDEX錯誤'將被捕獲。另一件事,如果你沒有提高錯誤,那麼它也可以用於批量插入。在異常'DUP_VAL_ON_INDEX'dnt引發異常。 –