Oracle
 sql >> Base de données >  >> RDS >> Oracle

Oracle ne peut pas mettre à jour vers NULL

D'après vos commentaires, j'ai lu que vous semblez vouloir écrire un enregistrement par défaut dans votre table cible, au cas où la sous-requête ne renvoie aucun enregistrement. Ainsi, la bonne façon de formuler votre requête serait d'utiliser un MERGE déclaration en tant que telle :

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);

C'est juste pour vous donner une idée. Je ne suis pas tout à fait sûr de ce que vous essayez de réaliser en détail, j'ai donc omis les sous-requêtes et les conditions