Можете да направите това с error_logging_clause . (Връзката е за вмъкване, защото в документацията на ОБЕДИВАНЕ казва, че има същото поведение като вмъкване.
За вашия случай:
-- 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;
Моля, обърнете внимание, че има някои ограничения за error_logging_clause. От документацията:
-
Следните условия причиняват неуспех на оператора и връщане назад, без да се извиква възможността за регистриране на грешки:
-
Нарушени отложени ограничения.
-
Всяка операция INSERT или MERGE с директен път, която предизвиква уникално ограничение или нарушение на индекса.
-
Всяка операция за актуализиране UPDATE или MERGE, която повдига уникално нарушение на индекса на ограничение).
-
-
Не можете да проследявате грешки в таблицата за регистриране на грешки за колони тип LONG, LOB или обект. Въпреки това таблицата, която е целта на DML операцията, може да съдържа тези типове колони.
-
Ако създадете или модифицирате съответната таблица за регистриране на грешки, така че да съдържа колона от неподдържан тип и ако името на тази колона съответства на неподдържана колона в целевата DML таблица, тогава DML операторът се проваля по време на анализ.
-
Ако таблицата за регистриране на грешки не съдържа неподдържани типове колони, тогава всички DML грешки се регистрират, докато не бъде достигнат лимитът за отхвърляне на грешки. За редове, в които възникват грешки, стойностите на колоните със съответните колони в таблицата за регистриране на грешки се регистрират заедно с контролната информация.
-