sql >> Databáze >  >> RDS >> Oracle

Kontrola omezení volání funkce Vývojář Oracle SQL

Ne, to nemůžete udělat, viz Omezení kontrolních omezení:

  • Volání funkcí definovaných uživatelem

Ale můžete to obejít pomocí virtuálních sloupců

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


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

Poznámka, funkce musí být DETERMINISTICKÁ, jinak nefunguje. Oracle neověřuje, zda je vaše funkce skutečně deterministická, pouze kontroluje klíčové slovo. Toto je povoleno (ačkoli to nedává vůbec žádný smysl):

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


  1. podporuje adaptér rails postgres ssl?

  2. Co je nového v ProxySQL 2.0

  3. SELECT nebo INSERT řádek v jednom příkazu

  4. Cast int do varchar