sql >> Databasteknik >  >> RDS >> Oracle

Oracle (11g) sammansatt utlösare uppdaterar inte CLOB-datafältet

Eftersom jag inte hade tid att dröja vid det här problemet löste jag det genom att använda en variabel.

Deklarera en CLOB-variabel i deklarationsavsnittet och tilldela värdet för :new.clob_field till den antingen i BEFORE EACH ROW eller EFTER EACH ROW, och använd variabeln i din insert/update-sats snarare än :new.clob_field inom triggern löser det här problemet.

Jag stötte på många inlägg från människor som kämpar med detta (speciellt sammansatta triggers, inte enkla triggers), så jag hoppas att den tid jag lägger ner på det här hjälper någon annan och sparar tid för dem.

Det skulle verkligen vara till hjälp för mitt förstånd om någon stöter på det här inlägget som vet anledningen till varför :new.clob_field förlorar sitt värde i en sammansatt trigger när den används i insert/update-satser i FÖRE/AFTER varje radsektion. Det skulle vara hemskt att dö en dag med den här tanken fast i mitt sinne...

Jag kommer också att anta att detta skulle fungera för BLOB också (om det orsakar problem).



  1. Oracle UNION Operatör förklaras

  2. C# Motsvarar SQL Server DataTypes

  3. Hur konverterar man SQL Query-resultat till PANDAS Data Structure?

  4. Tävlingsvillkor mellan val och uppdatering