Erfassen Sie Werte, die DUP_VAL_ON_INDEX auslösen

In diesem Beispiel (DUP_VAL_ON_INDEX Ausnahme) Ist es möglich, die Werte zu erfassen, die die Einschränkung verletzt haben, damit sie protokolliert werden können?

Wäre der Ansatz der gleiche, wenn von einer Masseneinfügung mehrere Verstöße generiert würden?

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;

Antworten auf die Frage(1)

Ihre Antwort auf die Frage