Můžete to udělat pomocí clause_error_logging_clause . (Odkaz je pro přílohu, protože v dokumentaci SPOJENÍ říká, že má stejné chování jako vložka.
Pro váš případ:
-- You create your Log Table
EXECUTE DBMS_ERRLOG.CREATE_ERROR_LOG('copy_emp', 'TAB_ERR_COPY_EMP');
MERGE INTO copy_emp c
USING employees e
ON (c.employee_id = e.employee_id)
WHEN MATCHED THEN
UPDATE SET
c.first_name = e.first_name,
c.last_name = e.last_name,
c.email = e.email,
c.phone_number = e.phone_number,
c.hire_date = e.hire_date,
c.job_id = e.job_id,
c.salary = e.salary,
c.commission_pct = e.commission_pct,
c.manager_id = e.manager_id,
c.department_id = e.department_id
WHEN NOT MATCHED THEN
INSERT VALUES(e.employee_id, e.first_name, e.last_name,
e.email, e.phone_number, e.hire_date, e.job_id,
e.salary, e.commission_pct, e.manager_id,
e.department_id)
LOG ERRORS INTO TAB_ERR_COPY_EMP('TAG_STATEMENT') REJECT LIMIT 100;
Upozorňujeme, že pro klauzuli error_logging_clause existují určitá omezení. Z dokumentace:
-
Následující podmínky způsobí, že příkaz selže a vrátí se zpět bez vyvolání funkce protokolování chyb:
-
Porušila odložená omezení.
-
Jakákoli operace INSERT nebo MERGE s přímou cestou, která vyvolává jedinečné omezení nebo porušení indexu.
-
Jakákoli operace aktualizace UPDATE nebo MERGE, která vyvolá jedinečné porušení indexu omezení).
-
-
Nemůžete sledovat chyby v tabulce protokolování chyb pro sloupce typu LONG, LOB, orobject. Tabulka, která je cílem operace DML, však může obsahovat tyto typy sloupců.
-
Pokud vytvoříte nebo upravíte odpovídající tabulku protokolování chyb tak, aby obsahovala sloupec nepodporovaného typu, a pokud název tohoto sloupce odpovídá nepodporovanému sloupci v cílové tabulce DML, pak příkaz DML selže při analýze.
-
Pokud tabulka protokolování chyb neobsahuje žádné nepodporované typy sloupců, jsou protokolovány všechny chyby DML, dokud není dosaženo limitu odmítnutí chyb. U řádků, na kterých dochází k chybám, jsou spolu s řídicími informacemi protokolovány hodnoty sloupců s odpovídajícími sloupci v tabulce protokolování chyb.
-