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 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 tentar entender melhor e lhe ajudar. Atenciosamente, [RED] Rodrigo Mufalani - Dir. Técnico rodr...@mufalani.com.br +55 21 988 994 817 Mufalani +55 21 3193 0326 Rua Almirante Grenfall, 405, Bloco 3, Sala 310 Centro Empresarial Washington Luiz Duque de Caxias - RJ CEP 25085-009 www.mufalani.com.br<http://www.mufalani.com.br/> [id:image002.png@01D2F4C6.8E6B3BE0] De: <oracle_br@yahoogrupos.com.br> em nome de "Rodrigo Mufalani rodr...@mufalani.com.br [oracle_br]" <oracle_br@yahoogrupos.com.br> Responder para: "oracle_br@yahoogrupos.com.br" <oracle_br@yahoogrupos.com.br> Data: terça-feira, 21 de novembro de 2017 15:58 Para: "oracle_br@yahoogrupos.com.br" <oracle_br@yahoogrupos.com.br> Assunto: Re: [oracle_br] Saber se um update foi feito 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 Mufalani +55 21 3193 0326 Rua Almirante Grenfall, 405, Bloco 3, Sala 310 Centro Empresarial Washington Luiz Duque de Caxias - RJ CEP 25085-009 www.mufalani.com.br<http://www.mufalani.com.br/> [id:image002.png@01D2F4C6.8E6B3BE0] De: <oracle_br@yahoogrupos.com.br> em nome de "emerson.sanc...@gmail.com [oracle_br]" <oracle_br@yahoogrupos.com.br> Responder para: "oracle_br@yahoogrupos.com.br" <oracle_br@yahoogrupos.com.br> Data: terça-feira, 21 de novembro de 2017 15:53 Para: "oracle_br@yahoogrupos.com.br" <oracle_br@yahoogrupos.com.br> Assunto: [oracle_br] Saber se um update foi feito 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); exception when dup_val_on_index then update Tabela1 set Campo2 = Valor2 where Campo1 = Valor; end; Funciona perfeitamente bem. Agora estou precisando fazer exatamente o contrario. Tentar alterar um campo da tabela e se NAO houver alteração (a clausula where nao encontrou nada para alteração) eu faço a inclusao do registro. Acredito que deva ficar algo assim: Procedure Insert_Dados begin update Tabela1 set Campo2 = Valor2 where Campo1 = Valor; exception when ????????????? then insert into Tabela1(Campo1, Campo2) valeus (Valor1 , Valor2); end; Se a sintaxe for essa, alguem saberia me dizer qual o nome da msg retornada quando nao é feito alteração, se nao, como resolver esse problema? Obrigado a todos pela atenção. [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]