我目前正在执行回归测试,并希望编写一个自动比较两个表之间的列值的查询。希望将来能够自动化这个功能。
基本上检查每个单元格。
我们目前正在使用基于Oracle和MSSQL的环境。
E.G。
Table A:
Column 1 | Column 2 | Column 3
540 EQUITY 10-09-12
Table B:
Column 1 | Column 2 | Column 3
330 CASH 10-03-11
非常感谢帮助。
答案 0 :(得分:0)
我们的测试人员发现对此类比较有用的最简单的查询之一是使用MINUS
运算符。
SELECT COUNT(*)
FROM ((SELECT *
FROM tableA
MINUS
SELECT *
FROM tableB)
UNION ALL
(SELECT *
FROM tableB
MINUS
SELECT *
FROM tableA)) ;
这会告诉您TableA
中有多少行,而不是TableB
中的TableB
,而不是TableA
。
如果两个表具有相同的结构并且您尝试仅比较值,则此方法有效。
您可以编写一个动态PL / SQL块,检查您需要在循环中比较的所有表的计数并生成报告。
您还可以在Toad
和SQL Developer
中找到比较实用程序,它们也会比较表结构。例如: - 如果columnA在TableA中,在TableB等中丢失,则可以生成报告。
如果表格大小很小,您还可以使用外部文本比较工具,例如超越比较或 Winmerge 。