从SQL文件生成数据字典的工具

Ste*_*eve 5 sql oracle database-schema

好的,所以我被骗了为我工作的Oracle数据库做一些数据库设计.问题是,我不是一个数据库人:-).我目前正在使用Rational Application Developer(RAD)来对我的数据库模式进行建模.我理想的做法是生成一系列Word文档,其中包含来自我的数据库模式的信息(主要是表/列信息,约束和触发器作为Word文档中的表).

我似乎无法用RAD找到任何方法,所以我想知道是否有人知道可以采用SQL DDL脚本文件(包含架构的CREATE命令)的工具,并生成Word类型的报告?

任何指针都非常感激.

谢谢...

dcp*_*dcp 4

最简单的方法可能是直接针对 Oracle 数据字典表本身运行命令,而不是尝试解析包含 create 语句的 SQL 文件。

例如,要获取模式 X 中的所有表,您可以执行以下操作:

SELECT table_name FROM all_tables  WHERE owner = 'X'
Run Code Online (Sandbox Code Playgroud)

要获取表“T”、所有者“U”的所有列,您可以执行以下操作:

SELECT column_name FROM all_tab_columns WHERE table_name = 'T' AND owner = 'U'
Run Code Online (Sandbox Code Playgroud)

完整示例

这是一个完整的示例,它允许您获取“所有者”拥有的所有表的所有表及其列。可以使用单个 SQL 语句来完成:

SELECT t.table_name
     , c.column_name
  FROM all_tables t
     , all_tab_columns c
 WHERE t.TABLE_NAME = c.TABLE_NAME
   AND t.OWNER      = c.OWNER
   AND t.OWNER      = 'owner'
ORDER BY t.TABLE_NAME
       , c.COLUMN_NAME
Run Code Online (Sandbox Code Playgroud)

至于将数据导入Word文档,我只是先将数据导入文本文件,然后如果需要的话可以使用其他方式将其导入Word。要将其放入文本文件,您只需在 中运行上述命令,然后在运行 SQL 语句之前将sql*plus其后台打印到文本文件(即spool file.txt在 中发出命令)。sql*plus然后你的输出将被写入一个文件。