sql >> データベース >  >> RDS >> Oracle

ORA-30926:ソース表で安定した行のセットを取得できません

    これは通常、USING句で指定されたクエリの重複が原因で発生します。これはおそらく、TABLE_Aが親テーブルであり、同じROWIDが数回返されることを意味します。

    クエリでDISTINCTを使用すると、問題をすばやく解決できます(実際、「Y」が定数値の場合は、クエリに含める必要はありません)。

    クエリが正しい(テーブルがわからない)と仮定すると、次のようになります。

      MERGE INTO table_1 a
          USING 
          (SELECT distinct ta.ROWID row_id
                  FROM table_1 a ,table_2 b ,table_3 c
                  WHERE a.mbr = c.mbr
                  AND b.head = c.head
                  AND b.type_of_action <> '6') src
                  ON ( a.ROWID = src.row_id )
      WHEN MATCHED THEN UPDATE SET in_correct = 'Y';
    


    1. SQLSELECTINTOステートメント

    2. Oracle RAC N+1の冗長性

    3. ニージャーク待機統計:SOS_SCHEDULER_YIELD

    4. データベースに直接アクセスするための開発者ツール