Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Trình kích hoạt Oracle trên Bảng lồng nhau

Bạn không thể xác định một trình kích hoạt như "TRƯỚC KHI CẬP NHẬT TRÊN Museum.EpriseeList.birthdate" Nhưng bạn có thể viết một trình kích hoạt bình thường TRƯỚC KHI CẬP NHẬT VỀ Museum và trong phần thân trình kích hoạt, bạn có thể lặp lại tất cả nhân viên đang kiểm tra ngày.

Hãy thử cái này:

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. Lỗi C # ORA 00907:Thiếu dấu ngoặc đơn phải

  2. Tạo một ngày ngẫu nhiên trong Oracle với DBMS_RANDOM

  3. Ràng buộc các tham số truy vấn theo tên với ODP.NET

  4. Oracle - trích xuất dấu thời gian từ chuỗi varchar?

  5. chuỗi trống trong oracle