Du kan gøre dette med error_logging_clause . (Linket er til indsættelsen, fordi i dokumentationen til SAMLET den siger, at den har samme adfærd som en indsættelse.
Til dit tilfælde:
-- 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;
Bemærk venligst, at der er nogle begrænsninger for error_logging_clausule. Fra dokumentationen:
-
Følgende forhold får sætningen til at mislykkes og rulle tilbage uden at aktivere fejllogningsfunktionen:
-
Overtrådte udskudte begrænsninger.
-
Enhver direkte sti-INSERT- eller MERGE-handling, der rejser en unik begrænsning eller indeksovertrædelse.
-
Enhver opdateringsoperation UPDATE eller MERGE, der rejser en unik overtrædelse af begrænsningsindekset).
-
-
Du kan ikke spore fejl i fejllogningstabellen for LONG-, LOB- eller objekttypekolonner. Tabellen, der er målet for DML-operationen, kan dog indeholde disse typer kolonner.
-
Hvis du opretter eller ændrer den tilsvarende fejllogningstabel, så den indeholder en kolonne af en ikke-understøttet type, og hvis navnet på den kolonne svarer til en ikke-understøttet kolonne i DML-måltabellen, mislykkes DML-sætningen på parsetidspunktet.
-
Hvis fejllogningstabellen ikke indeholder nogen ikke-understøttede kolonnetyper, logges alle DML-fejl, indtil afvisningsgrænsen for fejl er nået. For rækker, hvor der opstår fejl, logges kolonneværdier med tilsvarende kolonner i fejllogningstabellen sammen med kontroloplysningerne.
-