如何从现有表及其分区和索引结构在Sql中创建表

如何从现有表及其分区和索引结构在Sql中创建表,sql,database,oracle-sqldeveloper,Sql,Database,Oracle Sqldeveloper,我在模式ABC中有一个表,我必须在模式XYZ中为该表及其分区和索引创建一个精确的副本 Create table XYZ.table1 as Select * from ABC.table2; 有什么可能的实现方法吗?这是您应该查看的DBMS\u元数据包 在您的例子中,要获取表描述(及其分区),您需要使用 SELECT DBMS_METADATA.get_ddl ('TABLE', 'EMP', 'SCOTT') FROM DUAL; SELECT DBMS_METADATA.get_ddl

我在模式ABC中有一个表,我必须在模式XYZ中为该表及其分区和索引创建一个精确的副本

Create table XYZ.table1 as Select * from ABC.table2;

有什么可能的实现方法吗?

这是您应该查看的
DBMS\u元数据

在您的例子中,要获取表描述(及其分区),您需要使用

SELECT DBMS_METADATA.get_ddl ('TABLE', 'EMP', 'SCOTT') FROM DUAL;
SELECT DBMS_METADATA.get_ddl ('INDEX', index_name, 'SCOTT')
  FROM user_indexes
 WHERE table_name = 'EMP';
(其中
EMP
表示表名,而
SCOTT
是表名的所有者)


要获取其索引,您需要使用

SELECT DBMS_METADATA.get_ddl ('TABLE', 'EMP', 'SCOTT') FROM DUAL;
SELECT DBMS_METADATA.get_ddl ('INDEX', index_name, 'SCOTT')
  FROM user_indexes
 WHERE table_name = 'EMP';

另一个选项可能是使用数据泵导出和导入实用程序,它不仅允许导出元数据,还允许导出表的内容