Oracle行差异调试技巧

发布于 2024-11-14 09:37:42 字数 100 浏览 2 评论 0原文

我正在生产环境中运行查询,据说返回了 500 行,而我的开发设备上有相同的副本,而查询仅返回 497 行。

可以采取什么方法或步骤来比较结果?

有工具吗?

I am running a query on production and it is say returning me 500 rows and I have the same copy on my dev and the query is returning only 497 rows.

What approach or steps can be taken to compare the results?

Is there a tool?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

枫以 2024-11-21 09:37:42

假设两个数据库之间存在数据库链接,并且返回的数据与大多数相关行匹配,则可以使用 MINUS 操作。类似的内容

SELECT list_of_columns
  FROM some_table
 WHERE some_criteria
MINUS
SELECT list_of_columns
  FROM some_table@db_link_to_dev
 WHERE some_criteria

将显示第一个查询返回的行与第二个查询返回的行没有相同的匹配项。理想情况下,这只会显示额外的三行。但如果某些列返回的数据在两个环境中不同,它可能会返回额外的行。

Assuming there is a database link between the two databases and that the data being returned matches for most of the rows in question, you could use a MINUS operation. Something like

SELECT list_of_columns
  FROM some_table
 WHERE some_criteria
MINUS
SELECT list_of_columns
  FROM some_table@db_link_to_dev
 WHERE some_criteria

will show you the rows that are returned by the first query that do not have an identical match in the rows returned from the second query. Ideally, that would show you just the three extra rows. But it may return additional rows if the data returned for some columns is different in the two environments.

樱花落人离去 2024-11-21 09:37:42

如果您可以将结果集保存在平面文件中,那么您还可以获取免费开源 WinMerge 实用程序 的副本并比较结果。这消除了创建任何额外数据库对象的需要。另外,WinMerge 本身就是一个有价值的工具。

编辑:当然,假设是窗户。 *nix 解决方案可能是 diff。

If you can save the result sets in flat files, then you could also grab a copy of the free and open source WinMerge utility and compare the results. This eliminates the need to create any additional database objects. Plus, WinMerge is a valuable tool in it's own right.

EDIT: Assuming windows, of course. A *nix solution could be diff.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文