Database

如何區分兩個 Oracle 10g 模式?

  • February 23, 2018

我覺得兩個大型複雜的 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;

但是,當我轉儲和比較模式的輸出假離線時,幾乎每一行都存在微不足道的差異,這使得差異毫無價值。例如,模式名稱包含在每個表定義中。

有沒有更好的方法來做到這一點,它將以一種可以使用差異工具輕鬆比較的格式提供最重要的模式數據。我對錶、索引和触發器感興趣。

我正在使用 Oracle 數據庫 10g 企業版 10.2.0.3.0 版

我編寫的免費開源SchemaCrawler工具可以滿足您的需求。SchemaCrawler 以可區分的純文字格式(文本、CSV 或 XHTML)輸出模式的詳細資訊(表、視圖、過程等)。SchemaCrawler 還可以以相同的純文字格式輸出數據(包括 CLOB 和 BLOB)。您可以使用標準 diff 程序將目前輸出與輸出的參考版本進行比較。

https://www.SchemaCrawler.com

您需要為您的數據庫提供 JDBC 驅動程序。

引用自:https://serverfault.com/questions/26360