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]