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]

  • [oracle_br] Saber se... emerson.sanc...@gmail.com [oracle_br]
    • Re: [oracle_br]... Rodrigo Mufalani rodr...@mufalani.com.br [oracle_br]
      • Re: [oracle... Rodrigo Mufalani rodr...@mufalani.com.br [oracle_br]
        • Re: [or... Fabricio Pedroso Jorge fpjb...@gmail.com [oracle_br]
          • Re:... Luis Freitas lfreita...@yahoo.com [oracle_br]
            • ... Emerson Sanches emerson.sanc...@gmail.com [oracle_br]
    • [oracle_br] Re:... jlchia...@yahoo.com.br [oracle_br]

Responder a