DM7,DM8和ORACLE中對分割槽split的區別
在oracle中,我們可以透過如下的命令去split分割槽,可以保留原分割槽名。達夢7和達夢8不能保留原分割槽名,我們用如下的命令來進行測試:
oracle 11g:
CREATE TABLE HC.PARTITION_HB
( PID NUMBER NOT NULL ,
PITEM VARCHAR2(200),
PDATA DATE NOT NULL
)
PARTITION BY RANGE (PID)
(PARTITION PART_01 VALUES LESS THAN (5) ,
PARTITION PART_02 VALUES LESS THAN (10) ,
PARTITION PART_03 VALUES LESS THAN (20) ,
PARTITION PART_MAX VALUES LESS THAN (MAXVALUE) ) ;
BEGIN
FOR I IN 1..150 LOOP
INSERT INTO HC.PARTITION_HB VALUES(I,'AA'||I,sysdate);
COMMIT;
END LOOP;
END;
alter table hc.partition_hb SPLIT PARTITION part_max AT(150) INTO
(PARTITION PART_04,PARTITION PART_MAX);
select * from hc.partition_hb partition(part_max);
ALTER TABLE hc.partition_hb RENAME PARTITION part_max TO part_max1;
執行成功,可以用rename來重新命名分割槽
---------------------------------------------------------------------------------
DM7 中:
create user hc identified by dameng123;
grant dba to hc;
CREATE TABLE HC.PARTITION_HB
( PID NUMBER NOT NULL ENABLE,
PITEM VARCHAR2(200),
PDATA DATE NOT NULL ENABLE
)
PARTITION BY RANGE (PID)
(PARTITION PART_01 VALUES LESS THAN (5) ,
PARTITION PART_02 VALUES LESS THAN (10) ,
PARTITION PART_03 VALUES LESS THAN (20) ,
PARTITION PART_MAX VALUES LESS THAN (MAXVALUE) ) ;
BEGIN
FOR I IN 1..150 LOOP
INSERT INTO HC.PARTITION_HB VALUES(I,'AA'||I,sysdate);
COMMIT;
END LOOP;
END;
select count(1) from hc.partition_hb partition(part_max);
alTer table hc.partition_hb SPLIT PARTITION part_max AT(150) INTO
(PARTITION PART_04,PARTITION PART_MAX1);
ALTER TABLE hc.partition_hb RENAME PARTITION part_max1 TO part_max;
[執行語句1]:
ALTER TABLE hc.partition_hb RENAME PARTITION part_max1 TO part_max;
執行失敗(語句1)
第 1 行, 第 74 列[PARTITION]附近出現錯誤[-2007]:
語法分析出錯
可以看到達夢7不支援rename,也不支援物件重名,也就是split後的分割槽在原始表中不能有,故只能改成part_max1;
------------------------------------------------------------------------------------------------------------------------------
dm8:
[root@dm8os tool]# ./disql sysdba/dameng123
disql V8
SQL> show user;
未知的 SHOW 選項 user
SQL> select user;
未連線
SQL> conn sysdba/dameng123
伺服器[LOCALHOST:5236]:處於普通配置狀態
登入使用時間: 4.958(毫秒)
SQL> create user hc identified by dameng123;
grant dba to hc;
create user hc identified by dameng123;
[-510]:系統處於MOUNT狀態.
已用時間: 21.042(毫秒). 執行號:0.
SQL> grant dba to hc;
[-510]:系統處於MOUNT狀態.
已用時間: 2.532(毫秒). 執行號:0.
SQL>
SQL> CREATE TABLE HC.PARTITION_HB
2 ( PID NUMBER NOT NULL ENABLE,
3 PITEM VARCHAR2(200),
4 PDATA DATE NOT NULL ENABLE
5 )
6 PARTITION BY RANGE (PID)
7 (PARTITION PART_01 VALUES LESS THAN (5) ,
8 PARTITION PART_02 VALUES LESS THAN (10) ,
9 PARTITION PART_03 VALUES LESS THAN (20) ,
10 PARTITION PART_MAX VALUES LESS THAN (MAXVALUE) ) ;
CREATE TABLE HC.PARTITION_HB
( PID NUMBER NOT NULL ENABLE,
PITEM VARCHAR2(200),
PDATA DATE NOT NULL ENABLE
)
PARTITION BY RANGE (PID)
(PARTITION PART_01 VALUES LESS THAN (5) ,
PARTITION PART_02 VALUES LESS THAN (10) ,
PARTITION PART_03 VALUES LESS THAN (20) ,
PARTITION PART_MAX VALUES LESS THAN (MAXVALUE) ) ;
[-510]:系統處於MOUNT狀態.
已用時間: 3.614(毫秒). 執行號:0.
SQL> alter database open;
操作已執行
已用時間: 00:00:01.924. 執行號:0.
SQL> create user hc identified by dameng123;
create user hc identified by dameng123;
第1 行附近出現錯誤[-2124]:物件[HC]已存在.
已用時間: 1.310(毫秒). 執行號:0.
SQL> grant dba to hc;
操作已執行
已用時間: 11.131(毫秒). 執行號:4.
SQL>
SQL> CREATE TABLE HC.PARTITION_HB
2 ( PID NUMBER NOT NULL ENABLE,
3 PITEM VARCHAR2(200),
4 PDATA DATE NOT NULL ENABLE
5 )
6 PARTITION BY RANGE (PID)
7 (PARTITION PART_01 VALUES LESS THAN (5) ,
8 PARTITION PART_02 VALUES LESS THAN (10) ,
9 PARTITION PART_03 VALUES LESS THAN (20) ,
10 PARTITION PART_MAX VALUES LESS THAN (MAXVALUE) ) ;
操作已執行
已用時間: 28.160(毫秒). 執行號:5.
SQL>
2 BEGIN
3 FOR I IN 1..150 LOOP
4 INSERT INTO HC.PARTITION_HB VALUES(I,'AA'||I,sysdate);
5 COMMIT;
6 END LOOP;
7 END;
8 /
DMSQL 過程已成功完成
已用時間: 257.421(毫秒). 執行號:6.
SQL> select count(1) from hc.partition_hb partition(part_max);
行號 COUNT(1)
---------- --------------------
1 131
已用時間: 2.695(毫秒). 執行號:7.
SQL> alTer table hc.partition_hb SPLIT PARTITION part_max AT(150) INTO
2 (PARTITION PART_04,PARTITION PART_MAX);
alTer table hc.partition_hb SPLIT PARTITION part_max AT(150) INTO
(PARTITION PART_04,PARTITION PART_MAX);
第2 行附近出現錯誤[-2622]:分割槽名與資料庫物件名稱衝突.
已用時間: 0.757(毫秒). 執行號:0.
SQL> alTer table hc.partition_hb SPLIT PARTITION part_max AT(150) INTO
2 (PARTITION PART_04,PARTITION PART_MAX1);
操作已執行
已用時間: 90.611(毫秒). 執行號:8.
SQL> ALTER TABLE hc.partition_hb RENAME PARTITION part_max1 TO part_max;
操作已執行
已用時間: 117.870(毫秒). 執行號:9.
SQL>
-------------------------------------------
總結: split分割槽時,oracle可以使用原有分割槽名,DM中不可以,DM8支援rename partition操作,dm7不支援。
高版本還是功能更完善啊^_^
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23288301/viewspace-2707818/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle vs PostgreSQL DBA(13)- 拆分(split)分割槽OracleSQL
- oracle分割槽表和分割槽表exchangeOracle
- split 分割槽的簡單研究
- oracle分割槽表和非分割槽表exchangeOracle
- 對oracle分割槽表的理解整理Oracle
- oracle 分割槽表move和包含分割槽表的lob moveOracle
- 淺析Win10系統主分割槽和邏輯分割槽的區別Win10
- hive 分割槽表和分桶表區別Hive
- [oracle] expdp 匯出分割槽表的分割槽Oracle
- Oracle資料庫分割槽表SPLIT操作導致歸檔瘋漲Oracle資料庫
- 伺服器字符集對DM7中List分割槽表使用中文的影響伺服器
- 學習記錄1:python中replace和split對字串處理的區別Python字串
- win10分割槽使用mbr好還是gpt好_win10系統gpt分割槽和mbr分割槽的區別Win10GPT
- ORACLE刪除-表分割槽和資料Oracle
- Oracle中Date和Timestamp的區別Oracle
- oracle中distinct和group by的區別Oracle
- oracle 線上重新定義,普通表改變分割槽表,分割槽表可以更改型別、分割槽欄位等Oracle型別
- Hive中靜態分割槽和動態分割槽總結Hive
- Oracle分割槽表基礎運維-07增加分割槽(2 HASH分割槽)Oracle運維
- Mysql 的分割槽型別MySql型別
- Oracle分割槽表基礎運維-07增加分割槽(1範圍分割槽)Oracle運維
- ORACLE分割槽表梳理系列Oracle
- Oracle分割槽表基礎運維-09刪除分割槽Oracle運維
- Oracle分割槽表基礎運維-05組合分割槽Oracle運維
- Oracle分割槽表基礎運維-02範圍分割槽Oracle運維
- Oracle分割槽表基礎運維-03HASH分割槽Oracle運維
- Oracle分割槽表基礎運維-07增加分割槽(3列表分割槽)Oracle運維
- Oracle12c:建立主分割槽、子分割槽,實現自動分割槽插入效果Oracle
- Windows分割槽型別Windows型別
- Oracle分割槽表基礎運維-04列表分割槽Oracle運維
- 移動分割槽表和分割槽索引的表空間索引
- Oracle 資料庫 10g中的分割槽功能(轉)Oracle資料庫
- 從10046看Oracle分割槽裁剪Oracle
- Hive的分割槽和排序Hive排序
- 對sd卡分割槽fat和ext4SD卡
- MySQL和Oracle的區別MySqlOracle
- Oracle和MySQL的區別OracleMySql
- SSD固態硬碟要分割槽嗎?SSD固態硬碟分割槽與不分割槽的效能對比硬碟