Tôi cho rằng col_id là khóa chính. Vì vậy, trong tuyên bố cập nhật
EXECUTE IMMEDIATE 'UPDATE ' || dest || ' SET COUNTRY_CODE = :v1 WHERE col_id = :v2'
USING l_vc_CountryCode, l_vc_ColId;
bạn luôn cập nhật nhiều nhất một hàng và do đó điều kiện
SQL%ROWCOUNT > 1
không bao giờ đúng (1 không phải> 1)
Vì vậy, nếu bạn không có bất kỳ tuyên bố cam kết nào khác trong quy trình của mình, bạn sẽ không bao giờ cam kết những cập nhật đó.
Nhân tiện:mục đích của việc này là gì
if SQL%ROWCOUNT > 1 THEN
inserts := inserts + 1;
counter := counter + 1;
IF counter > 500 THEN
counter := 0;
COMMIT;
END IF;
END IF;
tại sao bạn không cam kết khi kết thúc công việc của mình?