Przypuszczam, że col_id jest kluczem podstawowym. Więc w oświadczeniu o aktualizacji
EXECUTE IMMEDIATE 'UPDATE ' || dest || ' SET COUNTRY_CODE = :v1 WHERE col_id = :v2'
USING l_vc_CountryCode, l_vc_ColId;
zawsze aktualizujesz co najwyżej jeden wiersz, a tym samym warunek
SQL%ROWCOUNT > 1
nigdy nie jest prawdziwe ( 1 nie jest> 1 )
Więc jeśli nie masz żadnej innej instrukcji zatwierdzenia w swojej procedurze, nigdy nie zatwierdzisz tych aktualizacji.
Przy okazji:jaki jest cel tego
if SQL%ROWCOUNT > 1 THEN
inserts := inserts + 1;
counter := counter + 1;
IF counter > 500 THEN
counter := 0;
COMMIT;
END IF;
END IF;
dlaczego po prostu nie zaangażujesz się pod koniec pracy?