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

Wyzwalacz Oracle na zagnieżdżonej tabeli

Nie możesz zdefiniować wyzwalacza, takiego jak „PRZED AKTUALIZACJĄ W Muzeum.EmployeeList.birthdate”Ale możesz napisać normalny wyzwalacz PRZED AKTUALIZACJĄ W Muzeum, a w treści wyzwalacza możesz zapętlić wszystkich pracowników, sprawdzając datę.

Wypróbuj ten:

CREATE OR REPLACE TRIGGER BUIR_Museum 
    BEFORE INSERT OR UPDATE ON Museum
    FOR EACH ROW

BEGIN
    IF :NEW.EmployeeList IS NOT NULL THEN
        FOR i IN :NEW.EmployeeList.FIRST..:NEW.EmployeeList.LAST LOOP
            IF :NEW.EmployeeList(i).birthdate > SYSDATE THEN
                RAISE_APPLICATION_ERROR(-20029, 'Invalid birthday');
            END IF;
        END LOOP;
    END IF;
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. Jak napisać sparametryzowaną kwerendę wstawiania Oracle?

  2. ORA-06531 po aktualizacji Oracle

  3. Jak obejść ORA-02014:nie można wybrać FOR UPDATE z widoku za pomocą DISTINCT, GROUP BY itp.

  4. Oracle SQL Wybierz pasujące zapytanie

  5. Jak wyświetlić błędy w sqlplus