Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Romulo Silva_69300

Trigger

Recommended Posts

Srs, boa noite.

 

Estou com uma necessidade de atualizar as informações de uma seguinte tabela estoque.

 

codigo | estoquefisico | estoquecontabil

esta é minha estrutura.

agora seguinte, toda vez que atualizar o campo estoquefisico, preciso que seja atualizado para o estoquecontabil tbm.

estou tentando através de trigger com este script, porem ainda estou aprendendo um pouco sobre triggers.

 

create or replace trigger atualiza_estoque
after update of estoquefisico on estoque
for each row
declare
pragma autonomous_transaction;
begin
update estoque set estoquecontabil=estoquefisico;
end;
ao tentar a atualização no campo estoquefisico me ocorre este erro:
ORA-00060: conflito detectado ao aguardar recurso
se eu retirar a declaração pragma autonomous_transaction;
me ocorre este:
ORA-04091: a tabela LOCAL.ESTOQUE é mutante; talvez o gatilho/função não possa localizá-la
Como posso contornar?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não se pode atualizar a mesma tabela numa trigger de update pois isto levaria a uma chanada infinita, mas vc pode atribuir um valor ao campo numa trigger de before update.

 

 

Algo asiim

 

create or replace trigger atualiza_estoque

before update of estoquefisico on estoque

for each row

 

begin

:new.estoquecontabil=:new.estoquefisico;

end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.