sql >> Database >  >> RDS >> Oracle

Beperking aanroepen van een functie Oracle SQL-ontwikkelaar

Nee, dat kan niet, zie Beperkingen op controlebeperkingen:

  • Oproepen naar door de gebruiker gedefinieerde functies

Maar u kunt een tijdelijke oplossing maken met behulp van virtuele kolommen

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


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

Let op, functie moet DETERMINISTISCH zijn, anders werkt het niet. Oracle controleert niet of uw functie daadwerkelijk deterministisch is, het controleert alleen op het trefwoord. Deze is toegestaan ​​(hoewel het helemaal geen zin heeft):

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


  1. MySQL-database maken vanuit Java

  2. Omgaan met het maken van indexen met MongoEngine in Python

  3. lege string in orakel

  4. SQLite-weergave maken