CREATE TABLE AS select * from partitioned table

时间:2014-09-03 05:55:42

标签: sql oracle database-partitioning

我想使用分区表的CTAS创建一个表。 新表必须具有旧表的所有数据和分区,子分区。 怎么做?

1 个答案:

答案 0 :(得分:1)

您需要首先使用所有分区创建新表,否则无法将分区定义添加到CTAS。创建表后,您可以使用insert into .. select填充表。

您可以使用dbms_metadata.get_ddl来获取旧表的定义。

select dbms_metadata.get_ddl('TABLE', 'NAME_OF_EXISTING_TABLE')
from dual;

将其输出保存到脚本中,执行搜索并替换以调整表名,然后运行create table,然后运行insert into ... select ...