从sqldeveloper中的不同oracle连接查询

时间:2012-02-21 14:58:08

标签: oracle oracle-sqldeveloper

我在sqldeveloper中有两个不同表的连接。

让我们说:

ConnectionA与表:A,B,C ConnectionB与表格:D,E,F

现在我想要一个如下所示的查询:

选择aa.name,dd.id 来自A aa,D dd;

我该怎么做?

3 个答案:

答案 0 :(得分:11)

如果要使用单个SQL语句查询两个不同数据库中的对象,则需要在两个数据库之间创建数据库链接。数据库链接是驻留在数据库中的对象,独立于查询工具。例如,在数据库A中,您可以创建数据库链接

CREATE DATABASE LINK to_b
  CONNECT TO username IDENTIFIED BY password
  USING tns_alias_on_a_pointing_to_b

然后当你连接到A时,你可以做类似

的事情
SELECT aa.name, dd.id
  FROM a aa,
       d@to_b dd
 WHERE aa.some_key = dd.some_key

答案 1 :(得分:2)

显然TOAD Data Point支持交叉连接查询,请参阅:

http://dev.toadfordataanalyst.com/webhelp/Content/Query_Builder/Create_CrossConnection_Queries.htm

同样Oracle SQL Developer似乎支持类似的东西。 (参见此博文:Cross Connection Queries

答案 2 :(得分:1)

我发现这很有帮助,并且对于Oracle 11g rel 2及更高版本:http://www.dba-oracle.com/t_how_create_database_link.htm来说,这是OP问题的重点。基本上,右键单击SQL Developer中“连接”窗格中的连接,单击“属性”,然后获取主机名,端口和服务名,可以将其插入CREATE DATABASE LINK语句的“使用”部分。我假设您输入服务名称还是SID取决于您在连接中使用的名称。示例:

create public database link mylink connect to remote_username identified by mypassword using 'myserver:1521/MYSID';