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

OracleはNULLに更新できません

    あなたのコメントから、サブクエリがレコードを返さない場合に備えて、デフォルトのレコードをターゲットテーブルに書き込みたいようだと読みました。したがって、クエリを表現する正しい方法は、<を使用することです。 code> MERGE そのような声明:

    MERGE INTO "SCHEMA1"."CELLS_GLIST" dst
    USING (
      -- rephrase your subquery here. This is your "merge data source". The number
      -- of records returned in this subquery will correspond to the number of
      -- affected records in dst
    ) src
    ON (
      -- the missing exists condition here. Everytime this condition matches a record
      -- between dst and src, an UPDATE is performed. Otherwise, an INSERT is
      -- performed
    )
    WHEN MATCHED THEN UPDATE 
      SET dst."GLIST_VALUE_ID" = src."GLIST_VALUE_ID"
    WHEN NOT MATCHED THEN INSERT ("GLIST_VALUE_ID", "USER_ID", "SESSION_ID")
      VALUES (NULL, 1, 123456);
    

    これはあなたにアイデアを与えるためだけのものです。何を達成しようとしているのかよくわからないので、サブクエリと条件を省略しました



    1. ユーザーストアドプロシージャの命名を避けるSP%またはSP_%

    2. LuigiワークフローのMySQLターゲット

    3. oracle10gで行を列に変換します

    4. PostgreSQLの利点