Source table
>desc TEST
Name Null? Type
ID NUMBER
NAME VARCHAR2(20)
SALARY NUMBER
ADDRESS VARCHAR2(20)
-No primary key on Source Table
Target Table
>desc TEST
Name Null? Type
ID NOT NULL NUMBER
NAME NOT NULL VARCHAR2(20)
SALARY NOT NULL NUMBER
ADDRESS VARCHAR2(20)
SOURCE_SYSTEM_ID NUMBER
DATA_MANIPULATION_TYPE CHAR(1)
ERRNUM NUMBER
-Primary key on target table on cols(ID,NAME,SALARY)
Currently we are using following map statement in replicat
--------
REPERROR(DEFAULT, EXCEPTION)
MAP A.TEST , TARGET B.TEST, &
COLMAP (USEDEFAULTS, SOURCE_SYSTEM_ID =2, DATA_MANIPULATION_TYPE = @GETENV ('GGHEADER', 'OPTYPE'));
EXCEPTIONSONLY,
INSERTALLRECORDS
MAP A.TEST , TARGET B.TEST_GG, &
COLMAP (USEDEFAULTS, SOURCE_SYSTEM_ID =2, DATA_MANIPULATION_TYPE = @GETENV ('GGHEADER', 'OPTYPE'), ERRNUM = @GETENV ('LASTERR', 'DBERRNUM'));
--------
Scenario:-
1)For few records null values are inserted on source to column NAME and SALARY.
2)Such records are mapped to exception table (TEST_GG) on target as null values can not be inserted to PK with ERRNUM ORA-1400(can't insert null values).
3)We need to insert auto-increment values to Name and salary column when these columns get null values from source, to avoid mapping rows to exception table.
Kindly suggest.
Regards,
Abhijit