Mapping one source to 2 target tables with different structure, replicat hits: ERROR OGG-00918 Key column xxxxx is missing from map. (Doc ID 1671873.1)

Last updated on JULY 17, 2017

Applies to:

Oracle GoldenGate - Version 11.2.1.0.13 and later
Information in this document applies to any platform.

Symptoms

same source table $QUAL11.QP01LOC1.EXTMTF maps to 2 target tables with different structures.
source defs is in use, and refers 2 different definitions: EXTMTF-CEDTERM-DEF and EXTMTF-CEDINST-DEF

target table DDLs:

SQL> desc EXTMTF_CEDTERM
Name Null? Type
----------------------------------------- -------- ----------------------------
SWITCH_ID NOT NULL CHAR(5)
DEVICE_ID NOT NULL VARCHAR2(8) <============== the column does not exit in other table
DB_LEVEL NOT NULL NUMBER

SQL> desc EXTMTF_CEDINST
Name Null? Type
----------------------------------------- -------- ----------------------------
SWITCH_ID NOT NULL CHAR(5)
INST_ID NOT NULL VARCHAR2(11) <============== the column does not exit in other table
DB_LEVEL NOT NULL NUMBER
FILE_NAME VARCHAR2(60)

 

ALLOWDUPTARGETMAP

sourcedefs ./dirdef/Ced2.def

MAP $QUAL11.QP01LOC1.EXTMTF,
TARGET UUU.EXTMTF_CEDTERM,
def EXTMTF-CEDTERM-DEF,
COLMAP (USEDEFAULTS,
SWITCH_ID = "Q001"
);


MAP $QUAL11.QP01LOC1.EXTMTF,
TARGET UUU.EXTMTF_CEDINST,
def EXTMTF-CEDINST-DEF,
COLMAP (USEDEFAULTS,
SWITCH_ID = "Q001"
);

 


replicat hits:
2014-05-06 09:04:48 ERROR OGG-00918 Key column INST_ID is missing from map.

if we switch the MAP position: UUU.EXTMTF_CEDINST first and UUU.EXTMTF_CEDTERM send, it will hits error on second table for column DEVICE_ID.



Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms