sql >> Base de Datos >  >> RDS >> Oracle

Oracle no puede actualizar a NULL

De sus comentarios, leí que parece querer escribir un registro predeterminado en su tabla de destino, en caso de que la subconsulta no devuelva ningún registro. Entonces, la forma correcta de formular su consulta sería usar un MERGE declaración como tal:

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

Esto es solo para darte una idea. No estoy muy seguro de lo que está tratando de lograr en detalle, por lo que omití las subconsultas y condiciones