Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle kann nicht auf NULL aktualisieren

Aus Ihren Kommentaren habe ich gelesen, dass Sie anscheinend einen Standarddatensatz in Ihre Zieltabelle schreiben möchten, falls die Unterabfrage keine Datensätze zurückgibt. Die korrekte Formulierung Ihrer Abfrage wäre also die Verwendung eines MERGE Aussage als solche:

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

Dies soll Ihnen nur eine Vorstellung geben. Ich bin mir nicht ganz sicher, was Sie im Detail erreichen wollen, deshalb habe ich die Unterabfragen und Bedingungen weggelassen