Non è possibile recuperare record dalla stessa tabella in un trigger di riga. Puoi accedere ai valori dal record effettivo usando :new e :old (è questo il tuo caso?). Il trigger potrebbe quindi essere riscritto 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;
Se è necessario interrogare un altro record dalla tabella READING, è necessario utilizzare una combinazione di trigger di istruzioni, trigger di riga e una raccolta PLSQL. Un buon esempio è su AskTom.oracle.com