DarkWorlds
Technical User
The following code errors with:
ORA-30926: unable to get a stable set of rows in the source tables
Cause: A stable set of rows could not be got because of large dml activity or a non-deterministic where clause.
Action: Remove any non-deterministic where clauses and reissue the dml.
What am I missing and how can I fix this. The tables are simple and both tables are the same. One is from jan the other is from mar. Just trying to update the old, and insert the new.
The code is as follows.
MERGE INTO UPD_TEMP_1 b
USING (
SELECT S_NUMBER, CUST_NUMBER, PAY_MODE, ACT_DATE, INACT_DATE
FROM TEMP_2) e
ON (b.S_NUMBER = e.S_NUMBER and b.CUST_NUMBER = e.CUST_NUMBER)
WHEN MATCHED THEN
UPDATE SET b.PAY_MODE = e.PAY_MODE, b.ACT_DATE = e.ACT_DATE, b.INACT_DATE = e.INACT_DATE
WHEN NOT MATCHED THEN
INSERT (b.S_NUMBER, b.CUST_NUMBER, b.PAY_MODE, b.ACT_DATE, b.INACT_DATE)
VALUES (e.S_NUMBER, e.CUS_NUMBER, e.PAY_MODE, e.ACT_DATE, e.INACT_DATE)
ORA-30926: unable to get a stable set of rows in the source tables
Cause: A stable set of rows could not be got because of large dml activity or a non-deterministic where clause.
Action: Remove any non-deterministic where clauses and reissue the dml.
What am I missing and how can I fix this. The tables are simple and both tables are the same. One is from jan the other is from mar. Just trying to update the old, and insert the new.
The code is as follows.
MERGE INTO UPD_TEMP_1 b
USING (
SELECT S_NUMBER, CUST_NUMBER, PAY_MODE, ACT_DATE, INACT_DATE
FROM TEMP_2) e
ON (b.S_NUMBER = e.S_NUMBER and b.CUST_NUMBER = e.CUST_NUMBER)
WHEN MATCHED THEN
UPDATE SET b.PAY_MODE = e.PAY_MODE, b.ACT_DATE = e.ACT_DATE, b.INACT_DATE = e.INACT_DATE
WHEN NOT MATCHED THEN
INSERT (b.S_NUMBER, b.CUST_NUMBER, b.PAY_MODE, b.ACT_DATE, b.INACT_DATE)
VALUES (e.S_NUMBER, e.CUS_NUMBER, e.PAY_MODE, e.ACT_DATE, e.INACT_DATE)