Trigger

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
SPECIALIZED
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 40
Registrado em: Ter, 02 Out 2007 4:09 pm
Localização: São Paulo - SP

Pessoal, bom dia !

Estou montando uma trigger que deve deve ser disparada apenas quando inserir ou atualizar uma tabela de cadastro de empresa, ela apenas irá disparar uma package que gera um arquivo txt, ela monta o arquivo através de um cursor, nada além disso.
O que está acontecendo é o seguinte, quando eu faço um update na tabela, está dando o seguinte erro:

Selecionar tudo

SQL>  update tbpjur
  2   set C_PORTADOR = C_PORTADOR
  3  where cempres = 3737;
 update tbpjur
        *
ERROR at line 1:
ORA-20099: ORA-04091: table COSMO.TBPJUR is mutating, trigger/function may not see it
ORA-06512: at "COSMO.PK_ARQUIVOS_FINANC", line 90
ORA-06512: at "COSMO.TRG_GERA_ARQ_TBPJUR", line 5
ORA-04088: error during execution of trigger 'COSMO.TRG_GERA_ARQ_TBPJUR'
a trigger está elaborada da seguinte forma:

Selecionar tudo

CREATE OR REPLACE TRIGGER TRG_GERA_ARQ_TBPJUR
AFTER INSERT OR UPDATE ON TBPJUR 
FOR EACH ROW
BEGIN
     PK_ARQUIVOS_FINANC.PR_GERA_ARQ_CAD_PJUR (SYSDATE,
                                                                                :NEW.CEMPRES) ;
END;
Alguém poderia me ajudar ?

Desde já agradeço
joaogarcia
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 91
Registrado em: Ter, 20 Mar 2007 7:19 pm
Localização: Campinas - SP
Contato:
Cordialmente,
João C. Garcia

Este erro é porque sua package está lendo a mesma tabela TBPJUR.

Esta chamada tem q ser feita para cada linha mesmo ?

Senão é só retirar da trigger a linha FOR EACH ROW que já era.


T+
joaogarcia
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 91
Registrado em: Ter, 20 Mar 2007 7:19 pm
Localização: Campinas - SP
Contato:
Cordialmente,
João C. Garcia

Então, eu não tinha visto o :new aí no parâmetro da PR_GERA_ARQ_CAD_PJUR

De qualquer forma, procure aqui no fórum usando como palavra chave MUTANTE ou MUTATING que você encontrará muita coisa.

T+
SPECIALIZED
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 40
Registrado em: Ter, 02 Out 2007 4:09 pm
Localização: São Paulo - SP

João, obrigado pela dica, fiz uma postagem num link onde o Dr. Gori fala bastante sobre mutanting, ele parece dominar o assunto, vamos ver se ele consegue me ajudar....

Um abraço :D
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 21 visitantes