Bom dia srs,

Estou construindo uma trigger na qual antes de atualizar/deletar um
registro, tenho que dar um select na própria tabela que está sendo
modificada, devido a executar joins em outras tabelas.

Minha dúvida é:

Como não posso executar uma instrução que necessito na tabela que está sendo
alterada (ver erro abaixo), onde posso "armazenar" o registro em questão
numa estrutura na qual possa dar joins em outras tabelas existentes???

Se eu colocar em um tipo de collection, posso fazer isto: ???

select
    t1.a,
    t1.b,
    t1.c,
    type_collection.a,
    type_collection.b
from
    t1
        inner join type_collection ....


ERRO:
-----------------------------------------------------------------

UPDATE WEB."CLIENTES" SET DAT_COMPRA = TO_DATE('21/02/08', 'DD/MM/RR') WHERE
ROWID = 'AAAKVQAAQAABpu9AAN'

One error saving changes to table WEB."CLIENTES":
Row 1: ORA-04091: table WEB.CLIENTES is mutating, trigger/function may not
see it
ORA-06512: at "WEB.TRG_CLIENTES", line 58
ORA-06512: at "WEB.TRG_CLIENTES", line 204
ORA-04088: error during execution of trigger 'WEB.TRG_CLIENTES'

-----------------------------------------------------------------


Att,


[As partes desta mensagem que não continham texto foram removidas]

Responder a