Oracle中的CREATE TABLE逆向工程

时间:2009-07-28 16:59:53

标签: sql oracle

在Oracle SQL Developer中,每个表都有一个“SQL”选项卡。此选项卡包含重新创建表所需的大部分SQL代码(CREATE TABLECREATE TRIGGER等)。

这些信息是以编程方式从数据库系统获得的,还是SQL Developer的应用程序功能?如果是前者,我需要运行哪些命令/语句来检索此信息?如果是后者,有没有聪明的方法让SQL Developer导出这些语句?

4 个答案:

答案 0 :(得分:7)

如果您使用的是Oracle 9i +,那么您正在寻找DBMS_METADATA包。 http://download.oracle.com/docs/cd/B10500_01/appdev.920/a96612/d_metada.htm。它将允许您提取所需的任何DDL。

如果您正在寻找更具体的信息,您可以访问大量的视图,以获取与@Quassnoi提供的数据元素类似的特定数据元素。

答案 1 :(得分:3)

有很多信息,但以下是主要问题:

SELECT  *
FROM    dba_tables

SELECT  *
FROM    dba_tab_columns

SELECT  *
FROM    dba_ind_columns

要查看SQL Developer实际输出的内容,请为LOGON TRIGGER的所有会话启用跟踪,并查看SQL Developer内部会话创建的跟踪文件。

答案 2 :(得分:1)

您正在寻找数据库对象的DDL

您可以使用Oracle捆绑的DBMS_METADATA包从任何PL / SQL提示符中获取GET_DDL函数。

答案 3 :(得分:0)

我使用TOAD与Oracle SQL Developer。

当我在查看对象(如表格)时单击“脚本”选项卡时,TOAD会执行大量查询,然后从所有这些查询的输出中编译“脚本”。

DBA_TABLES DBA_TAB_COLUMNS dba_ind_columns

...

我认为复制这个功能将是一项繁琐的工作。