Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

HandlerDescription
DISCARDIgnore the offending SQL and continue with the next one

...

FORCEIgnore the conflict, leave the SQL applied and continue with the next one (this differs from DISCARD only if the SQL actually changes something, i.e. the conflict is "too many rows updated/deleted")
OVERWRITEDo not check old values, try again with just primary key in the where clause (thus this will fail if there is no row at all on

...

APPLY with the PK value)
NEWER,OLDER

...

Look into target table (by primary key) and get values of specified columns (usually dates or number sequence). If the source row is newer/older, the operation becomes OVERWRITE, otherwise DISCARD.
PLSQL

...

Call user-

...

specified PL/SQL function.  More information is available in PL/SQL

...

f(apply_old_data table%rowtype, has_found_apply_row boolean, primary_key_data table%rowtype, new_data table%rowtype) return number;
The return values are:

    • 0: discard
    • 1: overwrite
    • 2: retry
    • 3: the PL/SQL function resolved the conflict by itself and made all necessary changes.

The function must not issue a commit, as the transaction may be yet rolled back, if a rollback happened on source.

...

conflict handler section. 
SQLSpecify a regular expression to change the executed SQL. Note that APPLY will still bind the same variables to execute the modified statement, so instead of simply commenting them out you can use e.g. nvl(1, :1) = 1 instead. Simple example: "s/$/ and rownum = 1/" will add the specified text to end of the SQL statement.
RETRYWait a few seconds (set by variable RETRY_TIME ) and try again
PAUSE

...

Wait for manual user resolution
ABORT

...

kill

...

APPLY process
ERROR

...

rollback the transaction, continue applying other transactions

 

 

Note
Note:
all
All the configured conflict handlers are listed in table: DBRSAPPLY_CONFLICT_HANDLERS. 
This has the same result running the command: dbvrep> SHOW_CONFLICT_HANDLERS
Example setting a conflict handler on a table:

 

Section Column
width5%

 

Column
width95
Panel
bgColorCCC
dbvrep> SET_CONFLICT_HANDLERS FOR TABLE SCOTT.AVI_OBJECTS FOR UPDATE ON DATA TO OVERWRITE

To show what the conflict handler has been set to:

Section
Column
width5%

 

Column
width95
Panel
bgColorCCC
dbvrep> show_conflict_handlers for table scott.avi_objects
The table called SCOTT.AVI_OBJECTS on source is handled on apply as follows:
UPDATE (error): handler: RETRY logging: LOG
UPDATE (data): handler: OVERWRITE logging: LOG
DELETE (error): handler: RETRY logging: LOG
DELETE (data): handler: RETRY logging: LOG
INSERT (error): handler: RETRY logging: LOG
TRANSACTION (error): handler: RETRY logging: LOG

See the Command Reference or use HELP SET_CONFLICT_HANDLERS for the exact syntax.