如何在不同模式中联接具有相同名称的表

时间:2019-07-10 10:34:58

标签: sql oracle

我需要检查两个具有相同名称但处于不同模式的表中数据之间的差异。我有两个模式:Database1和Database2,在第一个模式中我有TABLE_TEST,在第二个模式中我也有TABLE_TEST。表内的数据彼此之间有一些差异。我需要找出那些差异。我尝试过的是上面的查询,但它抛出此错误

  

ORA-00942:表或视图不存在
  00942. 00000-“表或视图不存在”

SELECT *
FROM Database1.TABLE_TEST 
  INNER JOIN Database2.TABLE_TEST 
          ON Database1.TABLE_TEST.ID = Database2.TABLE_TEST.ID;

表格的外观以及我需要显示为差异的内容

How does the table look and what I need to display as differences

1 个答案:

答案 0 :(得分:2)

假设您以DATABASE1用户的身份连接。

DATABASE2用户必须

grant select on table_test to database1;

以便database1可以选择其数据。

然后,您编写的查询应该可以正常工作(database1前缀不是必需的,但不会造成任何危害)。

SELECT *
FROM Database1.TABLE_TEST 
  INNER JOIN Database2.TABLE_TEST 
          ON Database1.TABLE_TEST.ID = Database2.TABLE_TEST.ID;