Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Bộ kích hoạt hỗn hợp Oracle (11g) không cập nhật trường dữ liệu CLOB

Không có thời gian để nán lại vấn đề này, tôi đã giải quyết nó bằng cách sử dụng một biến.

Khai báo một biến CLOB trong phần khai báo và gán giá trị của:new.clob_field cho nó trong TRƯỚC MỖI ROW hoặc SAU MỖI ROW và sử dụng biến trong câu lệnh insert / update thay vì:new.clob_field trong trigger giải quyết vấn đề này.

Tôi đã xem rất nhiều bài đăng của những người chiến đấu với điều này (đặc biệt là các trình kích hoạt phức hợp, không phải trình kích hoạt đơn giản), vì vậy tôi hy vọng thời gian tôi dành cho việc này sẽ giúp ích cho người khác và tiết kiệm thời gian cho họ.

Sẽ thực sự hữu ích cho sự tỉnh táo của tôi nếu bất kỳ ai xem qua bài đăng này biết lý do tại sao:new.clob_field mất giá trị trong trình kích hoạt phức hợp khi được sử dụng trong các câu lệnh chèn / cập nhật trong phần TRƯỚC / SAU mỗi hàng. Sẽ thật khủng khiếp khi chết một ngày nào đó với suy nghĩ này cứ lởn vởn trong đầu ...

Tôi cũng sẽ đưa ra giả định rằng điều này cũng sẽ hiệu quả với BLOB (nếu điều đó gây ra sự cố).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để Kiểm tra Hoạt động Cơ sở dữ liệu mà không có Vấn đề về Hiệu suất và Khả năng Mở rộng?

  2. So sánh ngày trong Oracle SQL

  3. ORA-04091:bảng xx_xx đang đột biến, trình kích hoạt / chức năng có thể không nhìn thấy nó

  4. Tạo Java trên cơ sở dữ liệu Oracle với JDBC

  5. Thứ tự thực hiện trình kích hoạt và các câu lệnh trong thủ tục được lưu trữ của Oracle