Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Cần trợ giúp trong việc thực hiện truy vấn cập nhật ngay lập tức

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?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kích hoạt sửa đổi phiên?

  2. Số nhận dạng ora-00972 quá dài oracle 10g

  3. Hiển thị mức sử dụng CPU oracle cho các phiên dưới dạng phần trăm

  4. Tạo khóa tự động Hibernate với MySQL và Oracle

  5. Câu lệnh FORALL với giới hạn dưới và trên trong cơ sở dữ liệu Oracle