-- the following code was found in $ORACLE_HOME/rdbms/admin/catapp.sql
-- and formatted for readability
CREATE OR REPLACE VIEW dba_apply_error_messages(
message_id, local_transaction_id, transaction_message_number,
error_number, error_message, source_object_owner, source_object_name,
object_owner, object_name, primary_key, position, operation,
conflict_type, applied_state, seq#, rba, conflict_info, source_package_name,
package_name, message)
AS
SELECT msg_id, local_transaction_id, txn_message_number+1,
error_number, error_message, NVL(source_object_owner,dest_object_owner), NVL(source_object_name, dest_object_name),
dest_object_owner, dest_object_name, primary_key, position, operation, (
CASE WHEN (bitand(flags, 1) = 1) THEN (
CASE WHEN (error_number = 26799 AND operation = 'INSERT') THEN 'INSERT ROW EXISTS'
WHEN (error_number = 26786 AND operation = 'UPDATE') THEN 'UPDATE ROW EXISTS'
WHEN (error_number = 26787 AND operation = 'UPDATE') THEN 'UPDATE ROW MISSING'
WHEN (error_number = 26786 AND operation = 'DELETE') THEN 'DELETE ROW EXISTS'
WHEN (error_number = 26787 AND operation = 'DELETE') THEN 'DELETE ROW MISSING'
ELSE NULL END)
ELSE NULL END), (
CASE WHEN (bitand(flags, 1) = 1) THEN (
CASE WHEN (bitand(flags, 6) = 6) THEN 'PARTIAL'
WHEN (bitand(flags, 2) = 2) THEN 'WON'
ELSE 'LOST' END)
ELSE NULL END),
seq#, rba, cg_info, source_package_name, dest_package_name,
dbms_streams_lcr_int.get_lcr_content(dbms_apply_adm.get_error_message(txn_message_number+1, local_transaction_id), '*')
FROM sys.apply$_error_txn; |