Sie können in einem Zeilentrigger keine Datensätze aus derselben Tabelle abrufen. Sie können mit :new und :old auf Werte aus dem aktuellen Datensatz zugreifen (ist dies Ihr Fall?). Der Trigger könnte dann umgeschrieben werden in
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;
Wenn Sie andere Datensätze aus der READING-Tabelle abfragen müssen, müssen Sie eine Kombination aus Anweisungstriggern, Zeilentriggern und einer PLSQL-Sammlung verwenden. Ein gutes Beispiel dafür ist AskTom.oracle.com