繁体   English   中英

SQL Developer:从连接的SQL Server DB和连接的Oracle DB连接表

[英]SQL Developer: Joining tables from connected SQL Server DB and connected Oracle DB

我们正在从SQL Server 2005迁移到Oracle 11G。 我一直在尝试使用存储在SQL Server表中的数据对Oracle中的表进行更新。

使用SQL Developer,我已经完成了以下工作:

  1. 创建到Oracle数据库的连接

     Created Connection name --> e9_crp Supplied User name and Pass Defined Host Name and SID 
  2. 我还创建了到包含参考数据的SQL Server的连接

     Connection Name --> sql_data User Name and Pass Host and Port 

用于SQL Server的连接名称是sql_data

用于Oracle的连接名称为e9_crp

在SQL Server中的表是在数据库my_tmp拥有dbo的拥有者,被称为tiersmy_tmp.dbo.tiers )。

在SQL Developer中,我可以查看,选择和查看层表。 sql_data连接中时,此SQL语句也可以使用工作表工作:

 select * from [my_tmp].[dbo].[tiers]

e9_crp连接模式中尝试连接到该表时,我一直在尝试执行以下操作:

 select * from [sql_data].[my_tmp].[dbo].[tiers]

但这返回一个错误,指出tiers表不存在:

 ORA-00903: invalid table name
 00903. 00000 -  "invalid table name"

这两个表的ID均为“ item”,因此在理想情况下,此表应该有效:

 select a.itm, b.tier
 from [e9_crp].[crpdta].[itemmaster] a inner join [sql_data].[my_tmp].[dbo].[tiers] b
     on(a.itm = b.itm)

假设我在表标识符中使用连接名称。 但是,这显然行不通。 我需要做的是能够根据需要以类似的方式将这两个数据库连接在一起。

如何使用SQL Developer联接这两个表? 我为联接尝试了表字符串的多次迭代,但是没有运气。 任何帮助表示赞赏。

Oracle具有DBLink的概念,而SQL Server具有Linked Server的概念。 这两个功能使您可以从两个单独的数据库中查询数据。

这是一个链接,其中包含有关将Oracle DBLink设置为SQL Server DB的说明...

http://www.dba-oracle.com/t_database_link_sql_server_oracle.htm

这是一个链接,其中包含有关将SQL Server链接服务器设置为Oracle DB的说明。

http://support.microsoft.com/kb/280106

另请参阅此帖子...

加入Oracle和MS SQL Server的SQL语句

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM