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

Làm cách nào để nhập một phân vùng từ bảng này vào bảng khác trong Oracle?

Bạn có thể làm điều gì đó tương tự với ALTER TABLE ... EXCHANGE PARTITION yêu cầu. Điều này sẽ trao đổi một phân vùng duy nhất với một bảng có cùng cấu trúc.

Một ví dụ nhỏ:

/* Partitionned Table Creation */
SQL> CREATE TABLE table_a (
  2     ID NUMBER PRIMARY KEY,
  3     DATA VARCHAR2(200)
  4  )
  5  PARTITION BY RANGE (ID) (
  6     PARTITION part100 VALUES LESS THAN (100),
  7     PARTITION part200 VALUES LESS THAN (200)
  8  );

Table created

/* Swap table creation */
SQL> CREATE TABLE swap_table (
  2     ID NUMBER PRIMARY KEY,
  3     DATA VARCHAR2(200)
  4  );

Table created

SQL> INSERT INTO swap_table SELECT ROWNUM, 'a' FROM dual CONNECT BY LEVEL <= 99;

99 rows inserted

SQL> select count(*) from table_a partition (part100);

  COUNT(*)
----------
         0

Thao tác này sẽ trao đổi phân vùng part100 với bảng chuyển đổi swap_table :

SQL> ALTER TABLE table_a EXCHANGE PARTITION part100 WITH TABLE swap_table;

Table altered

SQL> select count(*) from table_a partition (part100);

  COUNT(*)
----------
        99



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truy vấn cập nhật Oracle SQL mất nhiều ngày để cập nhật

  2. Tìm kiếm giá trị trong tất cả các bảng của cơ sở dữ liệu

  3. Gọi đến hàm không xác định oci_connect, php_oci8_12c.dll, windows 8.1, php5.6.6

  4. Biểu thức chính quy Oracle có dấu gạch nối không cho kết quả tương tự trên Windows như trên Unix

  5. Danh sách các khóa ngoại và các bảng mà chúng tham chiếu trong Oracle DB