Obs adicional : esse procedimento de fazer UPDATE se o registro existe ou
INSERT se não existe normalmente é conhecido entre os especialistas como UPSERT
(embora não seja um termo oficial é de praxe no mercado), e no RDBMS Oracle ele
é efetuado com o comando MERGE - dá um look em
Não, colega, vc está Equivocado : um UPDATE que não atualizou nenhuma linha
Não Levanta EXCEPTION alguma , isso Absoluta, Completamente,
Totalmente Não É ERRO...
https://asktom.oracle.com/pls/apex/f?p=100:11:0P11_QUESTION_ID:6030823496627
já registra isso, mas tal comportamento
"Mas uma coisa que não entendi no seu exemplo, primeiro ele vai dar um
update (registro, pode existir ou não), e ai caso aconteça algo que pelo
que entendi seria uma Exception (você também pode criar suas exceptions),
daí vai fazer o insert na mesma tabela. Explica melhor isso aí para que
possamos
Emerson,
Porque não trocar tudo pelo MERGE? Fica mais ou menos assim:
MERGE INTO tabela1 t1 USING DUAL ON (t1.campo1 = Valor1) WHEN MATCHED
THEN UPDATE SET t1.campo2 = Valor2 WHEN NOT MATCHED THEN INSERT (campo1,
campo2) VALUES (Valor1, Valor2);
Atc,Luis Freitas
On
Boa tarde,
Agora que entendi mais ou menos o que você quer fazer... Creio que vai ser
POG, mas daria para ter uma tabela de LOG e trigger na tabela e usar a
exception que vai estourar em cima da tabela de log...
Se tiver feito o update... insere em outra tabela...
Mas uma coisa que não
Boa tarde,
Se sua tabela tiver uma chave primária ou única, você pode usar a exception
WHEN DUP_VAL_ON_INDEX THEN
https://docs.oracle.com/cd/E18283_01/appdev.112/e17126/errors.htm
Atenciosamente,
[RED]
Rodrigo Mufalani - Dir. Técnico
rodr...@mufalani.com.br
+55 21 988 994 817
Boa tarde pessoal.
Em alguma situações, quero fazer um insert em uma tabela (sempre via procedure)
e se ja houver um registro igual na tabela, faço a alteração nesse registro. Ex
Procedure Insert_Dados
begin
insert into Tabela1(Campo1, Campo2)
valeus (Valor1 , Valor2);