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

ORA-30926-マージ状態

    @zaratustraからの説明に加えて、マージはfnも設定しようとしています。 およびln 同じnameに それがうまくいったとしてもあなたが望む結果を与えないであろう価値。また、fnは使用できません またはln using それらを更新しようとしているときの句。

    name_testの場合 テーブルに主キー(または少なくとも一意の)列がある場合、それをマージに含めることができますが、それでもfnのいずれかを正しく更新することしかできません。 またはln ワンパスでの価値。

    単純な更新を行わない理由がわかりません:

    update name_test nt
    set fn = (select td.name from temp_distinct td where td.fn = nt.fn),
      ln = (select td.name from temp_distinct td where td.fn = nt.ln);
    
    8 rows updated.
    
    select * from name_test;
    
    FN    LN  
    ----- -----
    Mich  Steve 
    Mich  Phil  
    Mark  Dave  
    Mich  Phil  
    Mich  Dave  
    Phil  John  
    Steve Dean  
    Steve Phil  
    


    1. JDBCはSSLを使用してOracleデータベースに接続します

    2. Centosへのmysql-pythonのインストール

    3. vb.netおよびMSSQLでの日時の問題

    4. mysqlレプリケーションをフィルタリングします(ignore-db)