Ivan, em tabela que a trigger é dispara, você não pode ter operações DML dentro da trigger utilizando a mesma tabela da trigger. A não ser que você utilize o PRAGMA_AUTONOMUS, que abriria "outra transação" e te possibilitaria operações DMLs da mesma tabela.
Não entendi o que você está fazendo, você está fazendo o Insert do campo antido (:OLD.NOME) do cliente? Se for aplicação, você poderia tratar isso direto na aplicação. Márcio. ----- Original Message ----- From: igmeirelles To: oracle_br@yahoogrupos.com.br Sent: Saturday, May 15, 2010 11:47 AM Subject: [oracle_br] A tabela SYSTEM.CLIENTES é mutante Olá a todos... estou iniciando em Oracle e me deparei com um problema ao utilizar triggers. criei uma tabela de teste chamada CLIENTES com o campo NOME varchar2(70)... e a seguinte TRIGGER: CREATE OR REPLACE TRIGGER TESTE_TRIGGER BEFORE UPDATE ON "SYSTEM"."CLIENTES" FOR EACH ROW BEGIN insert into "SYSTEM"."CLIENTES"("NOME") values(:OLD."NOME"); COMMIT; END; a Trigger compila normalmente, porém ao alterar um nome na tabela CLIENTES o Oracle me retorna o seguinte erro: Ocorreu um erro ao salvar alterações na tabela "SYSTEM"."CLIENTES": Linha 3: ORA-04091: a tabela SYSTEM.CLIENTES é mutante; talvez o gatilho/função não possa localizá-la ORA-06512: em "SYSTEM.TESTE_TRIGGER", line 3 ORA-04088: erro durante a execução do gatilho 'SYSTEM.TESTE_TRIGGER' o que estou fazendo de errado?? desde já agradeço a atenção de todos... Ivan Meirelles. [As partes desta mensagem que não continham texto foram removidas]