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

Kiểm tra Ràng buộc Gọi hàm Nhà phát triển Oracle SQL

Không, bạn không thể làm điều đó, hãy xem Hạn chế đối với Ràng buộc Kiểm tra:

  • Cuộc gọi đến các chức năng do người dùng xác định

Nhưng bạn có thể thực hiện một giải pháp khác bằng cách sử dụng các cột ảo

ALTER TABLE tbl_AccountAuthentications ADD (fnCheck NUMBER GENERATED ALWAYS AS (fnCheckValid(accountid_fk)) VIRTUAL);


ALTER TABLE tbl_AccountAuthentications
ADD CONSTRAINT chkCheckvalid CHECK(fnCheck <= 1);

Lưu ý, chức năng phải được XÁC ĐỊNH, nếu không nó không hoạt động. Oracle không xác minh xem hàm của bạn có thực sự xác định hay không, nó chỉ kiểm tra từ khóa. Điều này được cho phép (mặc dù nó không có ý nghĩa gì cả):

CREATE OR REPLACE FUNCTION DET_FUNCTION RETURN NUMBER DETERMINISTIC IS 
BEGIN 
    RETURN DBMS_RANDOM.RANDOM();
END;
/


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Toán tử Oracle (+)

  2. làm thế nào để nối nhiều hơn hai cột trong nhà phát triển plsql?

  3. Lược đồ mẫu trên GitHub

  4. Xóa các hàng trùng lặp khỏi bảng trong Oracle

  5. Trình điều khiển Oracle ODBC của bạn tải ứng dụng khách Oracle như thế nào?