我在sqldeveloper中有两个不同表的连接。
让我们说:
ConnectionA与表:A,B,C ConnectionB与表格:D,E,F
现在我想要一个如下所示的查询:
选择aa.name,dd.id 来自A aa,D dd;
我该怎么做?
答案 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';