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

SQL để cập nhật Bỏ qua truy vấn bị khóa và Java đa luồng - Cách khắc phục sự cố này

Tôi muốn làm với một cái gì đó như sau:Một con trỏ để chọn các hàng để cập nhật và sử dụng mệnh đề LIMIT để có được mười hàng đầu tiên có sẵn.

create table gm_temp
as select rownum id, table_name obj_name, date '2011-01-01' + rownum create_date 
from all_tables where rownum < 500;

CREATE TYPE tab_number IS TABLE OF NUMBER;

DECLARE
  cursor c_table IS 
    SELECT id FROM gm_temp ORDER BY create_date DESC FOR UPDATE OF id SKIP LOCKED;
  t_table_src tab_number := tab_number();
BEGIN
  OPEN c_table;
  FETCH c_table BULK COLLECT INTO t_table_src LIMIT 10;
  CLOSE c_table;
  dbms_output.put_line(':'||t_table_src.count||':'||t_table_src(1));
END;

Trên thực tế, trước hết tôi muốn xem liệu việc xử lý TẤT CẢ các hàng nổi bật dưới dạng một tập hợp có tốt hơn nhiều luồng hay không.

Sau đó, nếu tôi quyết định rằng tôi cần một số hình thức đa luồng, tôi sẽ xem xét các hàm xoay chiều có bật song song (giả sử tôi đang sử dụng Phiên bản Doanh nghiệp).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Giá trị khác nhau được tính trên cùng một cột

  2. Lấy giá trị từ 3 bảng

  3. Làm cách nào để xóa các bản sao khỏi danh sách được phân tách bằng dấu cách bởi Oracle regexp_replace?

  4. Thay thế biến / nghĩa cho con trỏ PL / SQL?

  5. Làm cách nào để ghi nhật ký các câu lệnh CẬP NHẬT bằng cách sử dụng ghi nhật ký của trình điều khiển Oracle một cách hợp lý?