
Trigger específica em apenas um campo da tabela
-
- Rank: Analista Sênior
- Mensagens: 140
- Registrado em: Qui, 16 Fev 2006 9:42 am
- Localização: Curitiba
Vanderlei Indalencio
Caros amigos estou com uma duvida em como utilizar uma trigger exclusivamente eu um campo da tebela, pois estava com problema de Tabela Multante e acho que resolvei este problema utilizando as dicas do Forum, criando uma trigger de VIEW, utilizando o INSTEAD OF, mas não sei como refernecio a apenas um campo na minha tabela, pois quero que Start a trigger, se houver UPDATING somente quando se atualiza este campo.... 

- dr_gori
- Moderador
- Mensagens: 5018
- Registrado em: Seg, 03 Mai 2004 3:08 pm
- Localização: Portland, OR USA
- Contato:
Thomas F. G
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Pode usar a cláusula WHEN da trigger. Daí você testa se o valor da trigger mudou.
Outra forma, é fazer um IF dentro da trigger e testar dentro da trigger se é o campo que está sendo alterado. Caso não for, dá um RETURN que ele sai fora da trigger.
PS: Tenha um cuidado especial ao verificar se o campo mudou. Dá uma olhada nesse tópico que fala um pouco sobre comparar campos NULL. (por sinal, foi um dos primeiros tópicos aqui do forum
)
create or replace trigger SUA_TRIGGER
after update on emp
for each row
WHEN (OLD.sal < 8000) --> Test aqui!
begin
... SEUS CÓDIGOS...
end;
PS: Tenha um cuidado especial ao verificar se o campo mudou. Dá uma olhada nesse tópico que fala um pouco sobre comparar campos NULL. (por sinal, foi um dos primeiros tópicos aqui do forum

-
- Rank: Analista Sênior
- Mensagens: 140
- Registrado em: Qui, 16 Fev 2006 9:42 am
- Localização: Curitiba
Vanderlei Indalencio
Valeu amigo, usei uma comparação com um if dentro da trigger, funciona perfeitamente, mas continuo com problema, pois me parece que na verdade não posso executar literalmente a trigger, pois estou utilizando-a numa View do Applications(APPS), e quando executo-a em outro local, existe um bendito campo do módulo PO do APPS que não é liberado.. Infelizmente não sei o que acontece... Mas mesmo assim valeu as dicas.. 

-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 14 visitantes