如何将一个普通的非分区表进行分区3 Partition Exchange 方法 ALTER TABLE EXCHANGE PARTITION 可以通过交换数据和索引 segment 来将一个分区(或子分区)转换成一个非分区表, 也可以将一个非分区表转换成一个分区表的分区(或子分区)。 除了需要更新索引以外,ALTER TABLE ... EXCHANGE PARTITION 命令是一个字典操作不需要数据移动。 更多关于此方法的信息参见 Oracle 联机文档(比如 11.2)和 Note 198120.1。 此方法简要步骤如下: 1) 根据所需的分区来创建新的分区表 2) 保持需要交换的非分区表与分区表的分区有相同的结构,并且确保您需要交换的非分区表具有您想要交换的内容 3) 执行:Alter table exchange partition partition_name with table exchange table 注意在交换过程中,所有交换的数据必须满足分区表的分区定义,否则如下错误将抛出:ORA-14099: all rows in table do not qualify for specified partition. 这是因为默认情况下分区交换是有校验的。 示例: 本例创建了与分区表 p_emp 的分区相同结构的交换表。 CREATE TABLE tt ( a NUMBER, y number, name VARCHAR2(100),date_used DATE) PARTITION BY RANGE (date_used) (PARTITION unpar_table_12 VALUES LESS THAN (TO_DATE('10/05/2015', 'DD/MM/YYYY')), PARTITION unpar_table_15 VALUES LESS THAN (TO_DATE('15/05/2015', 'DD/MM/YYYY')), PARTITION unpar_table_16 VALUES LESS THAN (TO_DATE('15/05/2025', 'DD/MM/YYYY'))); SQL> SELECT * FROM unpar_table; A Y NAME DATE_USED ---------- ---------- --------------- --------- 46 285 244164022 02-NOV-25 46 286 228081079 03-NOV-25 46 287 878105919 04-NOV-25 46 288 -1254518988 05-NOV-25 46 289 1956572968 06-NOV-25 46 290 348265456 07-NOV-25 46 291 48337066 08-NOV-25 46 292 1302255962 09-NOV-25 46 293 341976019 10-NOV-25 46 294 1167335415 11-NOV-25 46 295 -1167085671 12-NOV-25 A Y NAME DATE_USED ---------- ---------- --------------- --------- 46 296 -2048814779 13-NOV-25 46 297 673525194 14-NOV-25 46 298 1873920005 15-NOV-25 46 299 -1861525061 16-NOV-25 46 300 -256859954 17-NOV-25 46 301 217165365 18-NOV-25 46 302 -1750936383 19-NOV-25 46 303 331015710 20-NOV-25 46 304 1350010975 21-NOV-25 46 305 -1931474758 22-NOV-25 46 306 -1112942378 23-NOV-25 insert into unpar_table values(11110016,11002,dbms_random.random,TO_DATE('10/05/2013', 'DD/MM/YYYY')); insert into unpar_table values(11110017,11002,dbms_random.random,TO_DATE('11/05/2013', 'DD/MM/YYYY')); commit; insert into unpar_table values(11110018,11003,dbms_random.random,TO_DATE('12/05/2015', 'DD/MM/YYYY')); commit; insert into unpar_table values(110055519,11004,dbms_random.random,TO_DATE('13/05/2015', 'DD/MM/YYYY')); commit; SQL> CREATE TABLE exchtab1 as SELECT * FROM unpar_table WHERE date_used <(TO_DATE('10/05/2015', 'DD/MM/YYYY')) ; Table created. SQL> CREATE TABLE exchtab2 as SELECT * FROM unpar_table WHERE date_used BETWEEN (TO_DATE('10/05/2015', 'DD/MM/YYYY')) AND (TO_DATE('15/05/2015', 'DD/MM/YYYY')); Table created. SQL> CREATE TABLE exchtab3 as SELECT * FROM unpar_table WHERE date_used BETWEEN (TO_DATE('15/05/2015', 'DD/MM/YYYY')) AND (TO_DATE('15/05/2025', 'DD/MM/YYYY')); Table created. SQL> alter table tt exchange partition unpar_table_12 with table exchtab1; Table altered. SQL> alter table tt exchange partition unpar_table_15 with table exchtab2; Table altered. SQL> alter table tt exchange partition unpar_table_16 with table exchtab3; Table altered. 查询数据情况: SQL> SELECT count(*) FROM unpar_table WHERE date_used <(TO_DATE('15/05/2025', 'DD/MM/YYYY')); COUNT(*) ---------- 113007 SQL> select count(*) from tt; COUNT(*) ---------- 113007
如何将一个普通的非分区表进行分区3 Partition Exchange 方法
来源:这里教程网
时间:2026-03-03 21:36:10
作者:
编辑推荐:
- 如何将一个普通的非分区表进行分区3 Partition Exchange 方法03-03
- 记一次Oracle 19C RAC ORA-043003-03
- Oracle数据库,误删除数据文件,无任何备份情况下,完全恢复只需3步?03-03
- Oracle数据库,除了DBMS_METADATA.GET_DDL以外,如何获取表定义语句?03-03
- Oracle 19.24 补丁升级后数据库打开异常案例分析03-03
- 噩梦!改个参数,数据库竟然气到“拒绝上班”?03-03
- 记一次Oracle Library cache lock性能卡顿案例分析03-03
- Oracle误truncate操作恢复(一)03-03
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 记一次Oracle 19C RAC ORA-0430
记一次Oracle 19C RAC ORA-0430
26-03-03 - Oracle数据库,误删除数据文件,无任何备份情况下,完全恢复只需3步?
Oracle数据库,误删除数据文件,无任何备份情况下,完全恢复只需3步?
26-03-03 - Oracle数据库,除了DBMS_METADATA.GET_DDL以外,如何获取表定义语句?
- Oracle 19.24 补丁升级后数据库打开异常案例分析
Oracle 19.24 补丁升级后数据库打开异常案例分析
26-03-03 - 噩梦!改个参数,数据库竟然气到“拒绝上班”?
噩梦!改个参数,数据库竟然气到“拒绝上班”?
26-03-03 - 记一次Oracle Library cache lock性能卡顿案例分析
记一次Oracle Library cache lock性能卡顿案例分析
26-03-03 - DeepSeek问答,Oracle数据库的这些版本,千万别用,巨坑!
DeepSeek问答,Oracle数据库的这些版本,千万别用,巨坑!
26-03-03 - 湖南家具|泡芙储物床小户型必买,卧室省出双倍收纳
湖南家具|泡芙储物床小户型必买,卧室省出双倍收纳
26-03-03 - 表空间使用率迅速增长排查
表空间使用率迅速增长排查
26-03-03 - 铂乐·极满家玄关柜,你究竟喜欢哪款呢?
铂乐·极满家玄关柜,你究竟喜欢哪款呢?
26-03-03
