*1. आपको कर्सर परिभाषा में एक सेलेक्ट और एक अर्धविराम की आवश्यकता है
*2. आप कर्सर के ऊपर फॉर लूप जोड़ सकते हैं
उदाहरण के लिए:
DECLARE
cursor c1 is
SELECT street1
from test_data;
r1 c1%ROWTYPE;
BEGIN
FOR r1 IN c1 LOOP
... do your stuff with r1.street1
END LOOP;
END;
वैकल्पिक रूप से, आप स्पष्ट कर्सर परिभाषा से पूरी तरह बच सकते हैं, जैसे:
FOR r1 IN (SELECT street1 FROM test_data) LOOP
... do your stuff with r1.street1
END LOOP;
*3. आपके IF स्टेटमेंट में अर्धविराम शामिल नहीं हो सकता - उदा.:
If
Instr(r1.street1, 'Cnr', 1) >= 1
Then
*4. [संपादित करें] ताकि आप अपनी तालिका, कॉलम newstreetnumber
को अपडेट करना चाहें और newstreetname
- किस स्थिति में आप ऐसा कुछ कर सकते हैं:
DECLARE
cursor c1 is
SELECT street1
from test_data
FOR UPDATE;
r1 c1%ROWTYPE;
BEGIN
FOR r1 IN c1 LOOP
... do your stuff with r1.street1
UPDATE test_data
SET newstreetnumber = ...
,newstreetname = ...
WHERE CURRENT OF c1;
END LOOP;
END;
हालांकि, ध्यान दें कि यह बड़ी मात्रा में अच्छा प्रदर्शन नहीं करेगा, और मैं यह सब एक अद्यतन विवरण में करना पसंद करूंगा।