Oracle导出数据库结构的SQL

Ker*_*y82 6 sql oracle

我想创建一个可以重新创建我已经拥有的数据库的sql脚本.我想在没有数据的情况下重新创建数据库.

那么有没有sqlplus导出用户的数据库?

And*_*mar 12

这篇博客文章中,看起来有一个名为dbms_metadata可以生成create tableSQL 的包.例:

 set pagesize 0
 set long 90000
 set feedback off

 set echo off 
 spool filename.sql 
 connect username/password;
 SELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name)
     FROM USER_TABLES u;
 SELECT DBMS_METADATA.GET_DDL('INDEX',u.index_name)
     FROM USER_INDEXES u;
 spool off;
Run Code Online (Sandbox Code Playgroud)


APC*_*APC 8

有两种基本方法.

第一种是导出转储文件.这可以使用Datapump实用程序:

$ expdp apc/pw directory=data_dump_dir dumpfile=apc_20100707.dmp content=METADATA_ONLY  
Run Code Online (Sandbox Code Playgroud)

了解更多.

Datapump是在Oracle10g中引入的.在早期版本的数据库中,我们可以使用EXP实用程序来执行相同的操作.

$ exp apc/pw dumpfile=apc_20100707.dmp rows=N
Run Code Online (Sandbox Code Playgroud)

要导入文件,我们使用匹配impdp(或imp)实用程序.

这是操作系统的方法.要生成实际的SQL脚本,我们可以使用Oracle 9i中引入的内置DBMS_METADATA包.这是一项更多的工作,但可以更精细地控制导出对象的细节. 了解更多.