Você não pode recuperar registros da mesma tabela em um gatilho de linha. Você pode acessar os valores do registro real usando :new e :old (este é o seu caso?). O gatilho poderia então ser reescrito para
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 você precisar consultar outro registro da tabela READING, precisará usar uma combinação de gatilhos de instrução, gatilho de linha e uma coleção PLSQL. Um bom exemplo disso está em AskTom.oracle.com