Ich nehme an, dass col_id der Primärschlüssel ist. Also in der Update-Anweisung
EXECUTE IMMEDIATE 'UPDATE ' || dest || ' SET COUNTRY_CODE = :v1 WHERE col_id = :v2'
USING l_vc_CountryCode, l_vc_ColId;
Sie aktualisieren immer höchstens eine Zeile und damit die Bedingung
SQL%ROWCOUNT > 1
ist nie wahr ( 1 ist nicht> 1 )
Wenn Sie also keine andere Commit-Anweisung in Ihrer Prozedur haben, werden Sie diese Aktualisierungen niemals committen.
Übrigens:was soll das
if SQL%ROWCOUNT > 1 THEN
inserts := inserts + 1;
counter := counter + 1;
IF counter > 500 THEN
counter := 0;
COMMIT;
END IF;
END IF;
warum bestätigst du dich nicht einfach am Ende deiner Arbeit?