Não, você não pode fazer isso, consulte Restrições em restrições de verificação:
- Chamadas para funções definidas pelo usuário
Mas você pode fazer uma solução alternativa usando colunas virtuais
ALTER TABLE tbl_AccountAuthentications ADD (fnCheck NUMBER GENERATED ALWAYS AS (fnCheckValid(accountid_fk)) VIRTUAL);
ALTER TABLE tbl_AccountAuthentications
ADD CONSTRAINT chkCheckvalid CHECK(fnCheck <= 1);
Nota, a função tem que ser DETERMINISTA, caso contrário não funciona. O Oracle não verifica se sua função é realmente determinística, apenas verifica a palavra-chave. Este é permitido (embora não faça nenhum sentido):
CREATE OR REPLACE FUNCTION DET_FUNCTION RETURN NUMBER DETERMINISTIC IS
BEGIN
RETURN DBMS_RANDOM.RANDOM();
END;
/