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

Oracle (11g) sammensat trigger opdaterer ikke CLOB-datafeltet

Da jeg ikke havde tid til at dvæle ved dette problem, løste jeg det ved at bruge en variabel.

Erklære en CLOB-variabel i deklarationsafsnittet og tildele værdien af ​​:new.clob_field til den enten i BEFORE EACH ROW eller AFTER EACH ROW og bruge variablen i din insert/update-sætning i stedet for :new.clob_field i triggeren løser dette problem.

Jeg stødte på en masse indlæg fra folk, der kæmper med dette (specifikt sammensatte triggere, ikke simple triggere), så jeg håber, at den tid, jeg brugte på dette, hjælper en anden og sparer dem tid.

Det ville virkelig være nyttigt for min fornuft, hvis nogen støder på dette indlæg, der kender årsagen til, at :new.clob_field mister sin værdi i en sammensat trigger, når den bruges i indsæt/opdater-sætninger i FØR/EFTER hver række-sektion. Det ville være forfærdeligt at dø en dag med denne tanke fast i mit sind...

Jeg vil også antage, at dette også ville fungere for BLOB (hvis det forårsager et problem).



  1. Postgresql:Tjek, om skemaet eksisterer?

  2. Opgradering af en varchar-kolonne til enum type i postgresql

  3. Masseindsæt med filnavnsparameter

  4. Hvordan får man enkelt kolonne værdier ved hjælp af MySQLi?