Stu*_*ard 14 oracle sql database oracle10g
我觉得两个大型复杂 Oracle 模式之间存在一些差异,它们应该相同,因此决定转储并比较它们以进行调查。我找到了一篇文章(http://www.dba-oracle.com/art_builder_get_schema_syntax.htm),它提供了以下命令来转储表和索引定义。
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;
Run Code Online (Sandbox Code Playgroud)
然而,当我转储和比较模式的输出线轴时,几乎每一行都存在微不足道的差异,使差异变得毫无价值。例如,模式名称包含在每个表定义中。
是否有更好的方法来执行此操作,以可以使用 diff 工具轻松比较的格式提供最重要的模式数据。我对表、索引和触发器感兴趣。
我使用的是 Oracle 数据库 10g 企业版 10.2.0.3.0 版
Sua*_*ehi 14
我编写的免费开源SchemaCrawler工具可以满足您的需求。SchemaCrawler 以可区分的纯文本格式(文本、CSV 或 XHTML)输出架构的详细信息(表、视图、过程等)。SchemaCrawler 还可以以相同的纯文本格式输出数据(包括 CLOB 和 BLOB)。您可以使用标准 diff 程序将当前输出与输出的参考版本进行比较。
您将需要为您的数据库提供 JDBC 驱动程序。
| 归档时间: |
|
| 查看次数: |
25042 次 |
| 最近记录: |