【ASK_ORACLE】使用insert語句將普通錶轉換成分割槽表
實驗環境
搭建平臺:VMware Workstation
OS:OL 6.10
DB:Oracle 11.2.0.4
轉換步驟
本文將scott使用者的emp表為例,轉換成分割槽表
1.先建立一個空的分割槽表,這裡使用範圍分割槽
SQL> conn scott/tiger
SQL> create table emppart (ename varchar2(15) ,sal number(4))
partition by range (sal)
(partition p1 values less than (1000),
partition p2 values less than (2000),
partition p3 values less than (3000),
partition p4 values less than (4000),
partition pmax values less than (maxvalue));
2.將emp資料插入到新建的分割槽表 (如果欄位的對應關係正確,Oracle會自動幫我們按分割槽分類)
SQL> insert into emppart (ename,sal) select ename ,sal from emp;
3.驗證
(1)任意檢視幾個分割槽的資料,看是否正確分類
SQL> select * from emppart partition (p1);
QTY NAME
---------- ------------------------------
800 SMITH
950 JAMES
SQL> select * from emppart partition (p3);
QTY NAME
---------- ------------------------------
2975 JONES
2850 BLAKE
2450 CLARK
SQL> select * from emppart partition (pmax);
QTY NAME
---------- ------------------------------
5000 KING
##插入一行資料試試
SQL> insert into emppart values (6800,'HHW');
1 row created.
SQL> select * from emppart partition (pmax); ##正常輸出
QTY NAME
---------- ------------------------------
5000 KING
6800 HHW
(2)將pmax再分割槽驗證下
SQL> alter table emppart
split partition pmax at (6000) into (partition p5 ,partition pmax);
Table altered.
SQL> select * from emppart partition (pmax);
QTY NAME
---------- ------------------------------
6800 HHW
SQL> select * from emppart partition (p5); ## 驗證新分割槽沒問題
QTY NAME
---------- ------------------------------
5000 KING
4. 重新命名分割槽表
SQL> drop table emp; ##刪掉原表才能重新命名
SQL> alter table emppart rename to emp;
注:
1. 如果表過大,為了加快insert的速度,可以使用下面的方法:
(1)SQL>alter session enable parallel dml;
(2)SQL> insert /*+APPEND PARALLEL*/ into emppart (ename,sal) select ename ,sal from emp;
(3)SQL>alter session disable parallel dml;
2. 還可以簡化成 一行命令直接轉換:
(1)SQL>alter session enable parallel dml;
(2)create table emppart (ename varchar2(15) ,sal number(4)) partition by range (sal)
(<此處省略>) as insert /*+PARALLEL*/ into emppart (ename,sal) select ename ,sal from emp;
(3)SQL>alter session disable parallel dml;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69992972/viewspace-2926015/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 將普通錶轉換為分割槽表
- Oracle 將普通錶轉換為分割槽表Oracle
- 【分割槽】如何將一個普通錶轉換為分割槽表
- 普通錶轉換為分割槽表
- Oracle線上將普通錶轉分割槽表Oracle
- 將非分割槽錶轉換為分割槽表
- 將mysql非分割槽錶轉換為分割槽表MySql
- ORACLE普通錶轉換成分割槽表的操作Oracle
- 普通錶轉換分割槽表-線上重定義
- ORACLE將普通錶轉變為分割槽表方法Oracle
- Oracle Database將普通錶轉換為分割槽表遇到的問題OracleDatabase
- 將一個非分割槽錶轉換為分割槽表
- 線上重定義 ?普通錶轉換成分割槽表
- 普通錶轉換成分割槽表的四種方法
- 非分割槽錶轉換成分割槽表
- ORACLE 普通錶轉換成分割槽表(線上重定義)Oracle
- 利用線上重定義功能將普通錶轉換為分割槽表問題
- 批次轉換分割槽表為普通表
- 批量轉換分割槽表為普通表
- ORACLE 普通錶轉換成分割槽表(線上重定義)(zt)Oracle
- 高手幫忙,超大普通錶轉分割槽表?
- 線上表格重定義研究,比如將普通錶轉換為分割槽表等
- 堆錶轉換成分割槽表
- MySQL普通錶轉換成分割槽表的兩種方法舉例MySql
- 非分割槽錶轉換為分割槽表和partition indexIndex
- 非分割槽錶轉換成分割槽表以及注意事項
- ORACLE 11g 範圍分割槽錶轉換INTERVAL分割槽表Oracle
- 使用dbms_redefinition包線上把大資料量非分割槽錶轉換為分割槽表大資料
- 使用DBMS_REDEFINITION在事務處理過程中將一個非分割槽錶轉換為分割槽表
- 線上重定義的操作步驟__普通錶轉換為分割槽表的實驗案例
- 使用ORACLE線上重定義將普通表改為分割槽表Oracle
- oracle 普通表-分割槽表改造流程Oracle
- LightDB 22.4 新特性之相容Oracle線上轉換普通表為分割槽表Oracle
- 利用ORACLE DBMS_REDEFINITION包進行普通表到分割槽表的線上轉換Oracle
- Oracle 12C新特性-線上把非分割槽錶轉為分割槽表Oracle
- 利用exp/imp變換普通表為分割槽表_10g_windowsWindows
- Oracle普通表修改為分割槽表的方法Oracle
- 使用DBMS_REDEFINITION線上重定義表普通表為分割槽表