表t1是分区并有数据。Oracle 12c - 如何使用第一个表中的所有数据,分区和索引创建现有表的新表?
我使用这个命令将数据从T1转移到T2:
CREATE TABLE t2
TABLESPACE ts1
AS
select * from t1;
但是这个复制所有数据,但不创建分区,在T1。是否有命令将所有数据以及分区和索引从t1复制到t2?
表t1是分区并有数据。Oracle 12c - 如何使用第一个表中的所有数据,分区和索引创建现有表的新表?
我使用这个命令将数据从T1转移到T2:
CREATE TABLE t2
TABLESPACE ts1
AS
select * from t1;
但是这个复制所有数据,但不创建分区,在T1。是否有命令将所有数据以及分区和索引从t1复制到t2?
使用dbms_metadata
来获得整个结构。
SELECT dbms_metadata.get_ddl('TABLE', 'SOURCE_TABLE_NAME') FROM DUAL;
运行该查询生成的DDL
,用新的表名替换表名。
如果您source_table是在一个不同的模式,然后
SELECT dbms_metadata.get_ddl('TABLE', 'SOURCE_TABLE_NAME', 'SOURCE_SCHEMA_NAME') FROM DUAL;
这是不可能在同一个模式 - 它将失败的对象已存在错误。如果它是不同的模式,请尝试执行以下操作: 通过在导入到另一个模式时重命名该表进行导出和导入。
否则请尝试使用DBMS_METADATA.GET_DDL。
看看这个:http://www.dba-oracle.com/oracle_tips_dbms_metadata.htm。我希望它能回答你的问题。 – g00dy