मुझे लगता है कि col_id प्राथमिक कुंजी है। तो अपडेट स्टेटमेंट में
EXECUTE IMMEDIATE 'UPDATE ' || dest || ' SET COUNTRY_CODE = :v1 WHERE col_id = :v2'
USING l_vc_CountryCode, l_vc_ColId;
आप हमेशा अधिकतम एक पंक्ति और इस प्रकार स्थिति को अपडेट कर रहे हैं
SQL%ROWCOUNT > 1
कभी सच नहीं होता ( 1 नहीं> 1 होता है)
इसलिए यदि आपके पास अपनी प्रक्रिया में कोई अन्य प्रतिबद्ध विवरण नहीं है, तो आप उन अद्यतनों को कभी भी प्रतिबद्ध नहीं करेंगे।
वैसे:इसका उद्देश्य क्या है
if SQL%ROWCOUNT > 1 THEN
inserts := inserts + 1;
counter := counter + 1;
IF counter > 500 THEN
counter := 0;
COMMIT;
END IF;
END IF;
आप अपने काम के अंत में ही प्रतिबद्ध क्यों नहीं हो जाते?