使用游标浏览两个表

时间:2012-07-10 12:25:57

标签: oracle10g cursor

在我的程序中,我有两个具有相同数据的表。我通过光标浏览了我的第一张表。与第二个表相比,我发现了大量相同的数据。如果,例如在我的table_1中,我的数据中有10个,而我有12个数据表2,如何检测我的两个table_1中缺少的数据,这是光标遍历的?

THX。

1 个答案:

答案 0 :(得分:3)

听起来非常像使用MINUS操作符会更好。

SELECT a, b, c
FROM table1
MINUS
SELECT a, b, c
FROM table2

这将显示table1中存在的所有结果,这些结果在table2中不存在。为了显示两种方式的差异,您可以执行以下操作:

SELECT z.*, 'In table1, not in table2' problem_description
FROM (
  SELECT a, b, c
  FROM table1
  MINUS
  SELECT a, b, c
  FROM table2   
) z
UNION ALL
SELECT z.*, 'In table2, not in table1' problem_description
FROM (
  SELECT a, b, c
  FROM table2
  MINUS
  SELECT a, b, c
  FROM table1   
) z

SQL Fiddle for this answer