Przechwytuj wartości wyzwalające DUP_VAL_ON_INDEX
Biorąc pod uwagę ten przykład (DUP_VAL_ON_INDEX Wyjątek), czy możliwe jest przechwycenie wartości, które naruszyły ograniczenie, aby mogły zostać zarejestrowane?
Czy podejście będzie takie samo, jeśli istnieje wiele naruszeń generowanych przez wkładkę zbiorczą?
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;