sql >> Base de Datos >  >> RDS >> Oracle

El activador compuesto de Oracle (11g) no actualiza el campo de datos CLOB

Al no tener tiempo para demorarme en este problema, lo resolví haciendo uso de una variable.

Declarar una variable CLOB en la sección de declaración y asignarle el valor de :new.clob_field ya sea ANTES DE CADA FILA o DESPUÉS DE CADA FILA, y usar la variable en su declaración de inserción/actualización en lugar de :new.clob_field dentro del disparador resuelve este problema.

Encontré muchas publicaciones de personas que luchan con esto (específicamente desencadenantes compuestos, no desencadenantes simples), así que espero que el tiempo que dediqué a esto ayude a alguien más y les ahorre tiempo.

Realmente sería útil para mi cordura si alguien se encuentra con esta publicación y sabe la razón por la cual :new.clob_field pierde su valor en un disparador compuesto cuando se usa en declaraciones de inserción/actualización en la sección ANTES/DESPUÉS de cada fila. Sería horrible morir un día con este pensamiento clavado en mi mente...

También asumiré que esto también funcionaría para BLOB (si eso causa un problema).