Capturar valores que acionam DUP_VAL_ON_INDEX
Dado este exemplo (Exceção DUP_VAL_ON_INDEX), é possível capturar os valores que violaram a restrição para que possam ser registrados?
A abordagem seria a mesma se houvesse várias violações geradas por uma inserção em massa?
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;