1

我在整个网络上搜索这个问题时一直找不到解决方案,大多数回复都推荐一个工具,这让我相信这对于 SQL 查询或其他东西可能非常困难,但是......

我被告知要为我们的 DB2 数据库编写一个查询,使用 Toad 进行接口,它将比较 2 个模式并在有任何差异时提供结果。我知道 Toad 中存在此功能,但出于某种原因,我们的 DBA 不想使用它。购买额外的软件不是一种选择。

我的 SQL 知识/经验非常有限,这是我的“学习”任务之一。我没有取得太大的进步,感觉很卡。谁能给我建议?非常感谢您的帮助!

4

2 回答 2

0

试试 IBM Data Studio,它是免费的,您可以选择任意 2 个对象,然后在它们之间进行比较。

于 2012-07-25T12:20:12.563 回答
0

我假设架构是指表的架构,对吗?所有这些信息都可以通过syscat模式的视图获得。例如查看SYSCAT.TABLESand SYSCAT.COLUMNS,或查看文档了解更多信息。您可以像任何其他视图/表一样查询这些视图,因此要比较两个表是否包含相同的列,您可以执行以下操作:

  SELECT colname, colno, typeschema, typename FROM syscat.columns WHERE tabname = 'tab1' AND tabschema = 'schema'
  EXCEPT
  SELECT colname, colno, typeschema, typename FROM syscat.columns WHERE tabname = 'tab2' AND tabschema = 'schema'

例如,这将不会返回 tab1 中的所有列,但不会返回 tab2 中的所有列。

于 2011-10-13T23:58:44.917 回答