Vous ne pouvez pas récupérer des enregistrements de la même table dans un déclencheur de ligne. Vous pouvez accéder aux valeurs de l'enregistrement réel en utilisant :new et :old (est-ce votre cas ?). Le déclencheur pourrait alors être réécrit dans
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;
Si vous devez interroger un autre enregistrement de la table READING, vous devez utiliser une combinaison de déclencheurs d'instruction, de déclencheur de ligne et d'une collection PLSQL. Un bon exemple de ceci est sur AskTom.oracle.com