Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Gatilho composto Oracle (11g) não atualizando o campo de dados CLOB


Não tendo tempo para me deter neste problema, resolvi-o fazendo uso de uma variável.

Declarar uma variável CLOB na seção de declaração e atribuir o valor de :new.clob_field a ela em BEFORE EACH ROW ou AFTER EACH ROW e usar a variável em sua instrução insert/update em vez de :new.clob_field dentro do gatilho resolve este problema.

Me deparei com muitos posts de pessoas lutando com isso (gatilhos compostos especificamente, não gatilhos simples), então espero que o tempo que gastei com isso ajude outra pessoa e economize tempo.

Seria realmente útil para minha sanidade se alguém encontrar este post que saiba o motivo pelo qual :new.clob_field perde seu valor em um gatilho composto quando usado em instruções de inserção/atualização na seção ANTES/DEPOIS de cada linha. Seria horrível morrer um dia com esse pensamento preso em minha mente...

Também vou supor que isso funcionaria para BLOB também (se isso causar um problema).