【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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 非分割槽錶轉換成分割槽表
- 非分割槽錶轉換成分割槽表以及注意事項
- 線上重定義的操作步驟__普通錶轉換為分割槽表的實驗案例
- LightDB 22.4 新特性之相容Oracle線上轉換普通表為分割槽表Oracle
- oracle 普通表-分割槽表改造流程Oracle
- Oracle 12C新特性-線上把非分割槽錶轉為分割槽表Oracle
- Oracle 12.2之後ALTER TABLE .. MODIFY轉換非分割槽表為分割槽表Oracle
- 線上重定義方式將普通表修改為分割槽表
- PG的非分割槽表線上轉分割槽表
- oracle 線上重新定義,普通表改變分割槽表,分割槽表可以更改型別、分割槽欄位等Oracle型別
- oracle將表配置為分割槽表Oracle
- 教你使用SQLite-insert語句SQLite
- 線上重定義與普通表改為分割槽表
- SQLite Insert 語句SQLite
- oracle分割槽表和分割槽表exchangeOracle
- oracle分割槽表和非分割槽表exchangeOracle
- insert into select語句與select into from語句
- insert all和insert first語句的用法
- MySQL線上轉分割槽表(以及TiDB)MySqlTiDB
- PostgreSQL/LightDB 分割槽表之分割槽裁剪SQL
- Oracle使用RMAN將普通資料檔案轉成ASMOracleASM
- 【SQL】9 SQL INSERT INTO 語句SQL
- 使用SQL語句將資料庫中的兩個表合併成一張表SQL資料庫
- (3) MySQL分割槽表使用方法MySql
- 教程:如何使用DataLakeAnalytics建立分割槽表
- mariadb 分割槽表 不能使用 ICP
- 【MYSQL】 分割槽表MySql
- PostgreSQL使用表繼承實現分割槽表SQL繼承
- [oracle] expdp 匯出分割槽表的分割槽Oracle
- linux交換分割槽Linux
- Oracle分割槽表基礎運維-07增加分割槽(3列表分割槽)Oracle運維
- oracle 分割槽表move和包含分割槽表的lob moveOracle
- 移動分割槽表和分割槽索引的表空間索引
- 將表結構轉換成實體欄位
- Oracle分割槽表基礎運維-04列表分割槽Oracle運維
- 如何使用Data Lake Analytics建立分割槽表
- [20181120]奇怪的insert語句.txt
- INSERT...SELECT語句對查詢的表加鎖嗎