我在sqldeveloper中有不同表的2个连接。来自sqldeveloper中不同oracle连接的查询
让我们说:
ConnectionA与表:A,B,C ConnectionB与表:d,E,F
现在我想有一个查询,看起来像这样:
从A aa,D dd选择aa.name,dd.id ;
我该怎么做?
我在sqldeveloper中有不同表的2个连接。来自sqldeveloper中不同oracle连接的查询
让我们说:
ConnectionA与表:A,B,C ConnectionB与表:d,E,F
现在我想有一个查询,看起来像这样:
从A aa,D dd选择aa.name,dd.id ;
我该怎么做?
如果要使用单个SQL语句在两个不同数据库中查询对象,则需要在两个数据库之间创建数据库链接。数据库链接是驻留在数据库中并独立于查询工具的对象。在数据库中的,例如,您可以创建数据库链接
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,
[email protected]_b dd
WHERE aa.some_key = dd.some_key
我得到这个错误:SQL错误:ORA-12154:TNS:无法解析指定的连接标识 – user999379 2012-02-21 15:44:19
@ user999379 - 当我运行SELECT语句时,你会得到这个错误吗?在创建数据库链接时,TNS别名需要存在于数据库A上,并且需要指向数据库B.指向B的A上的TNS别名可能与本地系统中定义的TNS别名不同(特别是如果您使用本地命名和本地tnsnames.ora文件)。 – 2012-02-21 15:51:37
我们有一个“实时”数据库和一个运行在同一个Oracle数据库服务器上的“演示”数据库。它们都设置在相同的tnsnames.ora文件中。所以对我来说,就像在我的实时连接下执行这个语句一样简单:'CREATE DATABASE LINK demodb USING'demodb';'demodb是我们演示数据库在tnsnames.ora中的SID。现在,我可以通过在表名尾添加@demodb来查询我的活动数据库连接中的演示数据库表。 – Baodad 2013-06-21 15:50:57
显然TOAD Data Point支持交叉连接查询,见:
http://dev.toadfordataanalyst.com/webhelp/Content/Query_Builder/Create_CrossConnection_Queries.htm
而且Oracle SQL Developer似乎支承实类似的东西。 (看到这个博客文章:Cross Connection Queries)
表格不是连接特定的。也许你的意思是模式? – 2012-02-21 15:01:14
在sqldeveloper中,您可以创建具有自己表的连接 – user999379 2012-02-21 15:04:29
@ user999379 - 连接没有表。连接允许您以拥有特定对象集合(模式)的特定用户身份登录到特定数据库。连接不拥有任何对象。 – 2012-02-21 15:06:07