Anda tidak dapat menentukan pemicu seperti "BEFORE UPDATE ON Museum.EmployeeList.birthdate"Tetapi Anda dapat menulis trigger normal SEBELUM UPDATE ON Museum dan di trigger body Anda dapat mengulang semua karyawan yang memeriksa tanggal.
Coba yang ini:
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;