Use a opção PRAGMA citada no meu e-mail anterior que não terás problemas 
com tabela mutante!

Alexandre Rocha Placido escreveu:
> 
> 
> É que não listei a trigger toda é que tenho num sistema de terceiro que
> garantir que uma informação no pedido filho está de acordo com uma
> informação que está no pedido pai, sendo que os dois estão na mesma tabela,
> e caso essa informação não esteja consistente quero emitir um raise.
> 
> Isso tudo eu sei como desenrolar, meu problema é que se eu der o select para
> achar o pedido pai e verificar a informação para testar a consistência vai
> dar o erro de tabela mutante
> 
> De: oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br> 
> [mailto:oracle_br@yahoogrupos.com.br 
> <mailto:oracle_br%40yahoogrupos.com.br>] Em
> nome de Usuário do Sistema
> Enviada em: terça-feira, 20 de maio de 2008 16:40
> Para: oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br>
> Assunto: Re: [oracle_br] Problema com tabelas mutante em trigger
> 
> Uma trigger serve para disparar uma ação sempre que houver algum tipo de
> alteração na tabela, além claro de triggers de auditoria, etc, se você quer
> apenas fazer uma consulta na tabela não é necessário usar trigger.
> 
> Em 20/05/08, Alexandre Rocha Placido <[EMAIL PROTECTED] 
> <mailto:aplacido.oracle%40gmail.com>
> <mailto:aplacido.oracle%40gmail.com> > escreveu:
>  >
>  > Para ter certeza que entendi as idéias que mandaram.
>  >
>  > TRIGGER PED_VENDA_TRG
>  >
>  > BEGIN
>  >
>  > SELECT * FROM PEDIDO_VENDA WHERE PED_CODIGO = :NEW.PED_ATACADISTA;
>  >
>  > + algumas instruções e testes
>  >
>  > END;
>  >
>  > Não quero fazer update na tabela, quero consultar uma outra linha desta
>  > mesma tabela para poder fazer algumas verificações.
>  >
>  > De: oracle_br@yahoogrupos.com.br 
> <mailto:oracle_br%40yahoogrupos.com.br> 
> <mailto:oracle_br%40yahoogrupos.com.br>
> <oracle_br%40yahoogrupos.com.br> [mailto:
>  > oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br> 
> <mailto:oracle_br%40yahoogrupos.com.br>
> <oracle_br%40yahoogrupos.com.br>] Em
>  > nome de Usuário do Sistema
>  > Enviada em: terça-feira, 20 de maio de 2008 15:53
>  > Para: oracle_br@yahoogrupos.com.br 
> <mailto:oracle_br%40yahoogrupos.com.br> 
> <mailto:oracle_br%40yahoogrupos.com.br>
> <oracle_br%40yahoogrupos.com.br>
>  > Assunto: Re: [oracle_br] Problema com tabelas mutante em trigger
>  >
>  > Sua pergunta esta um pouco confusa, mas pelo que percebi vc tem uma
> trigger
>  > na tabela, e ela se auto atualiza, gerando o erro de tabela mutante, se
> for
>  > esse o seu caso basta criar uma view identica a tabela, e colocar a
> trigger
>  > na view, lembre-se que a trigger é instead of insert,update,delete on
> table
>  > for each row ..
>  >
>  > Exemplo:
>  >
>  > create table PEDIDO
>  > (
>  > ID NUMBER,
>  > DESCR VARCHAR2(200)
>  > );
>  >
>  > create or replace view vw_pedido as
>  > select "ID","DESCR" from pedido;
>  >
>  > create or replace trigger trg_vw_pedido instead of insert on vw_pedido
>  > for each row
>  > BEGIN
>  > insert into pedido(id,descr)
>  > values(:new.id,:new.descr);
>  > END;
>  >
>  > Dessa forma vc pode alterar a a view sem problemas.
>  >
>  > Um abraço.
>  >
>  > Em 20/05/08, Alexandre Rocha Placido <[EMAIL PROTECTED] 
> <mailto:aplacido.oracle%40gmail.com>
> <mailto:aplacido.oracle%40gmail.com> <aplacido.oracle%40gmail.com>
>  > <mailto:aplacido.oracle%40gmail.com <aplacido.oracle%2540gmail.com>> >
>  > escreveu:
>  > >
>  > > Estou com um problema para resolver com uma trigger só que não vai
>  > > funcionar
>  > > no normal porque o Orac Le irá reclamar de tabela mutante.
>  > >
>  > > O problema é o seguinte eu tenho numa mesma tabela pedido atacadista e
>  > > pedido normal, queria testar quando vou gravar um pedido normal se um
>  > > determinado atributo dele é o mesmo do pedido atacadista a que ele se
>  > > refere.
>  > >
>  > > Não consigo fazer um select dentro de uma trigger porque vai dar o
>  > problema
>  > > de tabela mutante.
>  > >
>  > > Alguém tem uma idéia de como criar um artifício que resolva este
>  > problema?
>  > >
>  > > Alexandre Rocha Placido
>  > >
>  > > image002Gerente de TI
>  > >
>  > > DITEC - Agrovale
>  > >
>  > > 74 3612-2900
>  > >
>  > > 87 8802-0474
>  > >
>  > > [EMAIL PROTECTED] <mailto:aplacido%40agrovale.com> 
> <mailto:aplacido%40agrovale.com>
> <aplacido%40agrovale.com> <mailto:
>  > aplacido%40agrovale.com <aplacido%2540agrovale.com>>
>  > <aplacido%40agrovale.com>
>  > >
>  > > MSN: [EMAIL PROTECTED] <mailto:aplacido%40gmail.com> 
> <mailto:aplacido%40gmail.com>
> <aplacido%40gmail.com> <mailto:
>  > aplacido%40gmail.com <aplacido%2540gmail.com>>
>  > <aplacido%40gmail.com>
>  > >
>  > > P Ler aqui sem imprimir é mais legal e faz bem ao meio ambiente.
>  > >
>  > > [As partes desta mensagem que não continham texto foram removidas]
>  > >
>  > >
>  > >
>  >
>  > [As partes desta mensagem que não continham texto foram removidas]
>  >
>  > [As partes desta mensagem que não continham texto foram removidas]
>  >
>  >
>  >
> 
> [As partes desta mensagem que não continham texto foram removidas]
> 
> [As partes desta mensagem que não continham texto foram removidas]
> 
> 


-- 

Sds,

   Leonardo Rezende
   Analista Desenvolvedor
   [EMAIL PROTECTED]

Responder a