Мне нужно обновить столбец на основе внутреннего соединения двух таблиц в Oracle. Я использую Merge, поскольку внутреннее соединение не поддерживается в Update.
Запрос:
MERGE INTO FAC.CMC_PRSQ_SITE_QA PRSQ
USING(
SELECT PRPR_ID, ADDRESS_TYPE, PRAD_EFF_DT, PRAD_TERM_DT
FROM FSG_WRK.FSG_PRAD_PRSQ_TEMP
) TEMP
ON (TEMP.PRPR_ID = PRSQ.PRPR_ID
AND TEMP.ADDRESS_TYPE = PRSQ.PRAD_TYPE
AND TEMP.PRAD_EFF_DT = PRSQ.PRAD_EFF_DT)
WHEN MATCHED THEN UPDATE
SET PRSQ.PRSQ_NEXT_VER_DT = TEMP.PRAD_TERM_DT
WHERE TEMP.PRAD_TERM_DT > PRSQ.PRSQ_LAST_VER_DT ;
Но ошибка ниже:
ORA-30926: unable to get a stable set of rows in the source tables
ORA-06512: at line 2
30926. 00000 - "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.
Также, пожалуйста, дайте мне знать, если есть какая-либо другая возможность переписать этот запрос.