Jag antar att col_id är den primära nyckeln. Så i uppdateringsförklaringen
EXECUTE IMMEDIATE 'UPDATE ' || dest || ' SET COUNTRY_CODE = :v1 WHERE col_id = :v2'
USING l_vc_CountryCode, l_vc_ColId;
du uppdaterar alltid högst en rad och därmed villkoret
SQL%ROWCOUNT > 1
är aldrig sant ( 1 är inte> 1 )
Så om du inte har något annat commit statement i din procedur kommer du aldrig att begå dessa uppdateringar.
Förresten:vad är syftet med detta
if SQL%ROWCOUNT > 1 THEN
inserts := inserts + 1;
counter := counter + 1;
IF counter > 500 THEN
counter := 0;
COMMIT;
END IF;
END IF;
varför förbinder du dig inte bara i slutet av ditt arbete?