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

Làm cách nào để sử dụng tên phân vùng làm tham số trong câu lệnh select?

Như đã nêu trong phần nhận xét của tôi, tôi nghĩ PARALLEL không có ý nghĩa gì (nhưng tôi không chắc về điều đó) và chạy từng phân vùng một cũng vô ích khi bạn sao chép toàn bộ bảng.

Dù sao đi nữa, mã của bạn sẽ hoạt động khi bạn viết nó như thế này:

FOR i in products_tab.first .. products_tab.last LOOP
   EXECUTE IMMEDIATE 'ALTER SESSION FORCE PARALLEL DML PARALLEL 24';
   EXECUTE IMMEDIATE 'INSERT /*+ APPEND PARALLEL(24) */ INTO tbla2
      ("ID", datetime, ...)
   SELECT * 
   FROM tbl1 PARTITION ('||products_tab(i).partition_name||)';
   COMMIT;

END LOOP;

Tôi không biết yêu cầu của bạn nhưng có thể Trao đổi Phân vùng và Tiêu đề phụ có thể là một lựa chọn cho bạn.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Xoay / xoay bảng với tổng hợp trong Oracle

  2. Lỗi Oracle khi tạo chế độ xem - ORA-01720

  3. Oracle:Tính chênh lệch múi giờ trong HH:MM:SS giữa 2 ngày

  4. Oracle di chuyển cột đến vị trí đầu tiên

  5. Cập nhật kích hoạt Oracle ở một bảng khác