Je suppose que col_id est la clé primaire. Donc, dans la déclaration de mise à jour
EXECUTE IMMEDIATE 'UPDATE ' || dest || ' SET COUNTRY_CODE = :v1 WHERE col_id = :v2'
USING l_vc_CountryCode, l_vc_ColId;
vous mettez toujours à jour au plus une ligne et donc la condition
SQL%ROWCOUNT > 1
n'est jamais vrai ( 1 n'est pas> 1 )
Donc, si vous n'avez aucune autre instruction de validation dans votre procédure, vous ne validerez jamais ces mises à jour.
Au fait :quel est le but de ce
if SQL%ROWCOUNT > 1 THEN
inserts := inserts + 1;
counter := counter + 1;
IF counter > 500 THEN
counter := 0;
COMMIT;
END IF;
END IF;
pourquoi ne vous engagez-vous pas simplement à la fin de votre travail ?