आप एक ही तालिका से एक पंक्ति ट्रिगर में रिकॉर्ड पुनर्प्राप्त नहीं कर सकते। आप वास्तविक रिकॉर्ड से मूल्यों का उपयोग कर सकते हैं:नया और:पुराना (क्या यह आपका मामला है?) इसके बाद ट्रिगर को
. पर फिर से लिखा जा सकता है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;
यदि आपको रीडिंग टेबल से अन्य रिकॉर्ड पूछने की आवश्यकता है तो आपको स्टेटमेंट ट्रिगर्स, रो ट्रिगर और पीएलएसक्यूएल संग्रह के संयोजन का उपयोग करना होगा। इसका अच्छा उदाहरण AskTom.oracle.com पर है।