Jeg formoder, at col_id er den primære nøgle. Så i opdateringserklæringen
EXECUTE IMMEDIATE 'UPDATE ' || dest || ' SET COUNTRY_CODE = :v1 WHERE col_id = :v2'
USING l_vc_CountryCode, l_vc_ColId;
du opdaterer altid højst en række og dermed betingelsen
SQL%ROWCOUNT > 1
er aldrig sand (1 er ikke> 1)
Så hvis du ikke har nogen anden forpligtelseserklæring i din procedure, vil du aldrig forpligte dig til disse opdateringer.
Forresten:hvad er formålet med denne
if SQL%ROWCOUNT > 1 THEN
inserts := inserts + 1;
counter := counter + 1;
IF counter > 500 THEN
counter := 0;
COMMIT;
END IF;
END IF;
hvorfor forpligter du dig ikke bare i slutningen af dit arbejde?