Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Sprawdź ograniczenie Wywoływanie funkcji Programista Oracle SQL

Nie, nie możesz tego zrobić, zobacz Ograniczenia dotyczące ograniczeń sprawdzania:

  • Wywołania funkcji zdefiniowanych przez użytkownika

Ale możesz obejść ten problem za pomocą wirtualnych kolumn

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


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

Uwaga, funkcja musi być DETERMINYSTYCZNA, w przeciwnym razie nie działa. Oracle nie weryfikuje, czy twoja funkcja jest rzeczywiście deterministyczna, sprawdza tylko słowo kluczowe. Ten jest dozwolony (choć nie ma to żadnego sensu):

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Procedura składowana Oracle:zwróć zarówno zestaw wyników, jak i parametry wyjściowe

  2. Rzeczy, które powinieneś wiedzieć przed nauką Oracle

  3. Zapamiętaj instancje RAC w narzędziach Perf

  4. Jak dodać wiodące zero do liczby w zapytaniu Oracle SQL?

  5. Instalowanie Oracle 12c Standard Edition w systemie Windows 10 Professional