以下合并语句失败,并显示以下错误“ ORA-30926:无法在源表中获得稳定的行集”。我试图从内部选择查询中消除重复项,并且内部查询没有重复项。但是我仍然看到作业在重新运行后失败,并出现相同的错误。任何帮助表示赞赏。
我的内部查询没有提供任何重复的内容...请弄清楚我是否缺少某些内容。
SELECT DISTINCT
col1,
col2,
col3,
col4,
col5,
col6,
col7,
col8
FROM table2
WHERE col7 IN (SELECT col1 FROM LOOKUP WHERE LEVEL_IND = 'L');
MERGE INTO TABLE1 UPLD
USING (SELECT DISTINCT
col1,
col2,
col3,
col4,
col5,
col6,
col7,
col8
FROM table2
WHERE col7 IN (SELECT col1 FROM LOOKUP WHERE LEVEL_IND = 'L')) TMP_UPLD
ON ( TMP_UPLD.col4 = UPLD.col4
AND TMP_UPLD.col5 = UPLD.col5)
WHEN MATCHED
THEN
UPDATE SET
UPLD.COL7 = TMP_UPLD.col1,
UPLD.col3 = TMP_UPLD.col3,
UPLD.col2 = TMP_UPLD.col2
WHERE TRAN_PERIOD = pi_tran_period
AND TRAN_YEAR = pi_tran_year
AND TRAN_BATCH = pi_tran_batch
AND SOURCE_INSTANCE = ps_source_instance
AND d_flag = 'D'
AND A_FLAG IS NULL
AND COL7 = TMP_UPLD.COL7
AND UPLD.A_DATE = TMP_UPLD.ACT_DATE
AND UPLD.SEQUENCE_NUMBER > TMP_UPLD.ACT_SEQUENCE_NUMBER
AND col7 IN (SELECT col1 FROM LOOKUP WHERE LEVEL_IND = 'L');