ORA-30926:无法在源表中获得稳定的行集-MERGE

时间:2019-06-27 15:57:07

标签: oracle

以下合并语句失败,并显示以下错误“ 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');

0 个答案:

没有答案