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

Oracle tự động chèn bản ghi trong khối multirecord phần 2

DUPLICATE_RECORD là một thủ tục bị hạn chế và bạn không thể sử dụng nó trong WHEN-VALIDATE-RECORD kích hoạt (hoặc bất kỳ loại nào khác cùng loại).

Khi bạn phải điều hướng đến bản ghi tiếp theo (nếu bạn muốn sao chép nó), ngay cả khi bạn đặt thủ tục hạn chế đó vào một đơn vị chương trình PL / SQL khác, mọi thứ sẽ chỉ phổ biến và - cuối cùng - nêu ra cùng một lỗi. Vậy là ... bạn không gặp may.

Ngay cả khi bạn đã viết một thủ tục (được lưu trữ) sẽ chèn hàng "Jr" đó vào cơ sở dữ liệu ở đâu đó phía sau cảnh, bạn phải tìm nạp các giá trị đó vào màn hình. Dưới dạng EXECUTE_QUERY là cách để làm điều đó và vì nó là (nhưng một thủ tục bị hạn chế khác), điều đó cũng sẽ không hoạt động.

Nếu bạn định xóa khối dữ liệu và điền nó theo cách thủ công (bằng cách sử dụng vòng lặp), bạn phải điều hướng đến bản ghi tiếp theo (và tiếp theo, và tiếp theo) với NEXT_RECORD , và đó lại là một thủ tục bị hạn chế. Bên cạnh đó, nếu đó là một khối dữ liệu (và đúng là như vậy), thì bạn thực sự sẽ tạo bản sao cho tất cả các bản ghi sau khi bạn lưu các thay đổi như vậy - nó sẽ không thành công với vi phạm ràng buộc duy nhất (điều này tốt) hoặc bạn tạo bản sao (điều này tệ hơn).

BTW có vấn đề gì với WHEN-NEW-RECORD-INSTANCE ? Bạn gặp vấn đề gì khi sử dụng nó?



  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 ADF trên JBoss:Vấn đề kết nối Jdbc bị quấn

  2. Hàm Oracle để so sánh các chuỗi không theo thứ tự

  3. PL / SQL kích hoạt cho sau khi chèn, cập nhật, xóa nhập Dữ liệu vào Bảng Nhật ký với một Trình tự

  4. GWFG trong Oracle RAC

  5. Chiều dài thực của một chuỗi, như Oracle đã thấy