Bạn không thể truy xuất bản ghi từ cùng một bảng trong một trình kích hoạt hàng. Bạn có thể truy cập các giá trị từ bản ghi thực tế bằng cách sử dụng:new và:old (đây có phải là trường hợp của bạn không?). Trình kích hoạt sau đó có thể được ghi lại thành
CREATE OR REPLACE TRIGGER AFTERINSERTCREATEBILL
AFTER INSERT
ON READING
FOR EACH ROW
DECLARE
varCustID Varchar(10);
BEGIN
Select CustID INTO varCustID
From Address A
Join Meter M
on A.postCode = M.postCode
Where M.MeterID = :new.MeterID;
INSERT INTO BILL VALUES
(SEQBILLNO.NEXTVAL, SYSDATE, 'UNPAID' , 100 , varCustID , SEQREADNO.CURRVAL);
END;
Nếu bạn cần truy vấn bản ghi khác từ bảng ĐỌC, bạn phải sử dụng kết hợp trình kích hoạt câu lệnh, trình kích hoạt hàng và tập hợp PLSQL. Ví dụ điển hình về điều này là trên AskTom.oracle.com