We are using Oracle publisher to replicate data from oracle to SQL server,everything works well but i see the rowlevel triggers captures old data and new data also so i am seeing duplicates records in HREPL_POLL for two operations,any idea why its tracks
old data?its slowing the process as we are having multiple records.As per the trigger logic whenever updates happens its stores old data and new data,can it update data basing on primary key?or its the expected behavior
/* Formatted on 8/30/2019 10:06:55 AM (QP5 v5.256.13226.35510) */
CREATE OR REPLACE TRIGGER HREPL_ARTICLE545_TRIGGER_ROW
AFTER DELETE OR INSERT OR UPDATE
ON "FLXUSER"."TEST"
FOR EACH ROW
DECLARE
Seq NUMBER := 0;
Stmt NUMBER;
Op1 NUMBER := 0;
Op2 NUMBER := 0;
EntryTime NUMBER
:= ROUND (TO_NUMBER ( (SYSDATE - HREPL.BaseTimeT) * 86400));
BEGIN
IF HREPL.SQLORIGINATOR = FALSE
THEN
BEGIN
SELECT HREPL_SEQ.NEXTVAL INTO Seq FROM DUAL;
IF UPDATING
AND ( :old."ID" != :new."ID"
OR :old."NUM" != :new."NUM")
THEN
SELECT HREPL_STMT.CURRVAL INTO Stmt FROM DUAL;
Op1 := '15';
OP2 := '16';
ELSE
IF INSERTING
THEN
Op2 := '2';
ELSIF DELETING
THEN
Op1 := '1';
ELSE
Op1 := '3';
Op2 := '4';
END IF;
END IF;
IF UPDATING OR DELETING
THEN
INSERT INTO HREPL_ARTICLE545LOG_1
VALUES (Seq,
Stmt,
Op1,
0,
EntryTime,
:old."ID",
:old."NUM");
END IF;
IF UPDATING OR INSERTING
THEN
INSERT INTO HREPL_ARTICLE545LOG_1
VALUES (Seq,
Stmt,
Op2,
0,
EntryTime,
:new."ID",
:new."NUM");
END IF;
END;
END IF;
END;
/