发布网友 发布时间:2022-04-22 05:38
共2个回答
热心网友 时间:2022-04-07 18:26
普通表txn转换成分区表
一 创建普通表txn
SQL> create table txn as select level as id from al connect by level<=29;
SQL> desc txn
Name Null? Type
----------------------------------------- -------- ----------------------------
ID NUMBER
二 创建表空间
SQL> create tablespace t1 datafile '/home/oracle/t1.dbf' size 5M;
SQL> create tablespace t2 datafile '/home/oracle/t2.dbf' size 5M;
SQL> create tablespace t3 datafile '/home/oracle/t3.dbf' size 5M;
三 创建分区表,命名为txn_1
SQL> create table txn_1(id number) partition by range(id)
2 (
3 partition part1 values less than(10) tablespace t1,
4 partition part2 values less than(20) tablespace t2,
5 partition part3 values less than(30) tablespace t3
6 );
四 导出普通表数据
[oracle@ogg1 ~]$ exp chen/chen file=txn.dmp tables=txn
五 更改表名
SQL> rename txn to txn_old;
SQL> rename txn_1 to txn;
六 将数据导入到分区表中
[oracle@ogg1 ~]$ imp chen/chen file=txn.dmp fromuser=chen touser=chen ignore=y
七 查看分区表
SQL> col table_name for a10
SQL> col partition_name for a10;
SQL> select table_name,partition_name from user_tab_partitions;
TABLE_NAME PARTITION_
---------- ----------
TXN PART1
TXN PART2
TXN PART3
SQL> select * from txn partition(part2);
ID
----------
10
11
12
13
14
15
16
17
18
19
10 rows selected.
热心网友 时间:2022-04-07 19:44
以 create table tablename as ...的格式创建一个分区表,然后把原表重命名,再把分区表重命名为目标表,这样应该可以了,注意主键索引都需要手工添加进去。