共計 4218 個字符,預計需要花費 11 分鐘才能閱讀完成。
本篇內容主要講解“DM7,DM8 和 ORACLE 中對分區 split 的區別是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓丸趣 TV 小編來帶大家學習“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
到此,相信大家對“DM7,DM8 和 ORACLE 中對分區 split 的區別是什么”有了更深的了解,不妨來實際操作一番吧!這里是丸趣 TV 網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!