Tidak, Anda tidak dapat melakukannya, lihat Pembatasan pada Batasan Pemeriksaan:
- Panggilan ke fungsi yang ditentukan pengguna
Tetapi Anda dapat membuat solusi menggunakan kolom virtual
ALTER TABLE tbl_AccountAuthentications ADD (fnCheck NUMBER GENERATED ALWAYS AS (fnCheckValid(accountid_fk)) VIRTUAL);
ALTER TABLE tbl_AccountAuthentications
ADD CONSTRAINT chkCheckvalid CHECK(fnCheck <= 1);
Catatan, fungsi harus DETERMINISTIK, jika tidak maka tidak akan berfungsi. Oracle tidak memverifikasi apakah fungsi Anda benar-benar deterministik, ia hanya memeriksa kata kunci. Yang ini diperbolehkan (walaupun tidak masuk akal sama sekali):
CREATE OR REPLACE FUNCTION DET_FUNCTION RETURN NUMBER DETERMINISTIC IS
BEGIN
RETURN DBMS_RANDOM.RANDOM();
END;
/