2017-06-13 130 views
0

我试图对两个Oracle数据库进行比较 - 我正在运行一个关于两个不同模式名称的报告 - 在我的例子中是一个模式前缀。例如。使用:我可以让schemacrawler忽略模式名称吗?

-schemas=FOO.* 

然后

-schemas=BAR.* 

有从报告中隐藏该前缀的一种方式,所以它不会显示为比较两个报告时一个明显的区别?

我知道我可以使用除了“不重要”的文本比较功能,但它会很高兴来弥补这一前期。

我有我缺少明显的东西的感觉,也或许没有人需要以此为架构名称是相当基本的。我想我只是在跨模式进行比较。

如果是在帮助,我可能已经误解了我已阅读。

任何提示将受到欢迎。

非常感谢。

回答

0

。当然,这是在明显的地方回答...

SchemaCrawler HowTo

如何隐藏在文本输出

更改为SchemaCrawler配置目录和架构名称 schemacrawler.format.show_unqualified_names =在 schemacrawler.config.properties文件属实。此设置将显示 数据库对象(如表和项目)的非限定名称。 也就是说,目录和模式名称将不会显示。小心使用 ,特别是如果您有外键引用 其他模式中的表或同义词。

然而,在我的情况,产量为实际返回SQL和程序等内,所以是什么DB持有的基础。 据我所见,我最好的方法是使用Beyond Compare或类似的东西去除这些小字符串以帮助进行比较。

+0

你确定你使用的是甲骨文SchemaCrawler插件?如果是,那么[额外的SQL](https://github.com/sualeh/SchemaCrawler/blob/master/schemacrawler-oracle/src/main/resources/schemacrawler-oracle.show_unqualified_names.sql)应该已经执行了,阻止架构名称在元数据中出现 –

+0

@SualehFatehi我实际上不确定我是否。我目前使用命令'schemacrawler.cmd -server = oracle'或者插件是单独的吗?我是否需要使用源代码?详细程度意味着我正在选择实际的sql - 或者只是元数据,因为我看到的东西就像FROM FOO .. JOIN FOO .. (注意:我的数据库知识不是很好,所以我可能会做愚蠢的事情!) – Ads

+0

使用-loglevel = ALL开启日志记录,并检查插件是否正在加载。 –

相关问题