Oracle
 sql >> Database >  >> RDS >> Oracle

Il trigger composto Oracle (11g) non aggiorna il campo dati CLOB

Non avendo tempo per soffermarmi su questo problema, l'ho risolto utilizzando una variabile.

Dichiarazione di una variabile CLOB nella sezione di dichiarazione e assegnazione del valore di :new.clob_field ad essa in PRIMA DI OGNI RIGA o DOPO OGNI RIGA e utilizzando la variabile nell'istruzione insert/update anziché :new.clob_field all'interno del trigger risolve questo problema.

Mi sono imbattuto in molti post di persone che combattono con questo (attivatori composti in particolare, non semplici trigger), quindi spero che il tempo che ho dedicato a questo aiuti qualcun altro e gli faccia risparmiare tempo.

Sarebbe davvero utile per la mia sanità mentale se qualcuno si imbattesse in questo post che conosce il motivo per cui :new.clob_field perde il suo valore in un trigger composto quando viene utilizzato nelle istruzioni di inserimento/aggiornamento nella sezione PRIMA/DOPO di ogni riga. Sarebbe terribile morire un giorno con questo pensiero bloccato nella mia mente...

Presumo anche che funzionerebbe anche per BLOB (se ciò causa un problema).