Boa noite pessoal. Aí vai minha dúvida:
O cliente veio me pedir para gerar uns scripts de update na base a partir de uns dados que ele me trouxe em um .xlsx, até aí tudo bem, fiz uma aplicaçãozinha que lê tudo certinho e funcionou.
Mas aí ele me disse que não seriam só updates, que alguns dos registros do arquivo .xls não existiam na base e precisavam ser alterados. Então fica a regra:
Registro existe na tabela? UPDATE
Registro não existe na tabela? INSERT
eu gostaria de saber se alguém tem uma sugestão de como eu fazer isso em uma query, algo que ja teste isso pra mim, e em um caso rode o update, e nos outros o insert.
eu li sobre a função MERGE do Oracle, que não consegui testar hoje devido ao horário, porém preciso terminar isso amanhã bem cedo, então gostaria de ver se alguém tem uma sugestão melhor.
o que eu fiz ficou assim:
MERGE INTO tabelaA A
USING (
SELECT codigo
FROM tabelaB
WHERE filtro = 20) B
ON (A.codigo = B.codigo)
WHEN MATCHED THEN
--Roda a Query de UPDATE
WHEN NOT MATCHED THEN
--Roda a Query de INSERT
Esse é o exemplo alterado (por razões de segurança da empresa) de um dos scripts.
Alguém ja usou isso? Funcionou? Alguém tem uma sugestão melhor?
Obrigado, pessoal!