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;
/