如何从现有表及其分区和索引结构在Sql中创建表
我在模式ABC中有一个表,我必须在模式XYZ中为该表及其分区和索引创建一个精确的副本如何从现有表及其分区和索引结构在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
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';
另一个选项可能是使用数据泵导出和导入实用程序,它不仅允许导出元数据,还允许导出表的内容