Oracle
 sql >> база данни >  >> RDS >> Oracle

Съставният тригер на Oracle (11g) не актуализира полето с данни CLOB

Тъй като нямах време да се задържам върху този проблем, го реших, като използвах променлива.

Деклариране на CLOB променлива в секцията за деклариране и присвояване на стойността на :new.clob_field към нея или ПРЕДИ ВСЕКИ РЕД, или СЛЕД ВСЕКИ РЕД, и използване на променливата във вашия оператор за вмъкване/актуализиране вместо :new.clob_field в тригера решава този проблем.

Попаднах на много публикации от хора, които се борят с това (конкретно сложни тригери, а не прости тригери), така че се надявам времето, което отделих за това, да помогне на някой друг и да му спести време.

Наистина би било полезно за здравия ми разум, ако някой попадне на тази публикация, който знае причината, поради която :new.clob_field губи стойността си в съставен тригер, когато се използва в оператори за вмъкване/актуализиране в раздела ПРЕДИ/СЛЕД всеки ред. Би било ужасно да умра един ден с тази мисъл, заседнала в съзнанието ми...

Също така ще направя предположението, че това ще работи и за BLOB (ако това създава проблем).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Незабавно изпълнение в рамките на Oracle Procedure

  2. Hibernate Dialect за Oracle 19

  3. Задействайте избиране на дъщерни записи, умножаване на техните стойности и актуализиране на родителски запис

  4. OUT параметри на съхранена процедура на Oracle

  5. Oracle, еквивалент на SQL Server, включва колони за индексиране