Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Oracle não pode atualizar para NULL


De seus comentários, li que você parece querer gravar um registro padrão em sua tabela de destino, caso a subconsulta não retorne nenhum registro. Portanto, a maneira correta de formular sua consulta seria usar um MERGE declaração 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);

Isso é só para você ter uma ideia. Não tenho certeza do que você está tentando alcançar em detalhes, então omiti as subconsultas e condições