Oracle
 sql >> Database >  >> RDS >> Oracle

Trigger Oracle su tabella nidificata

Non puoi definire un trigger come "PRIMA DELL'AGGIORNAMENTO SU Museum.EmployeeList.birthdate"Ma puoi scrivere un normale trigger PRIMA DELL'AGGIORNAMENTO SU Museo e nel corpo del trigger puoi scorrere tutti i dipendenti controllando la data.

Prova questo:

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;