SQL开发人员:从连接的SQL Server数据库和连接的Oracle数据库连接表
我们正在从SQL Server 2005迁移到Oracle 11G。我一直在尝试使用存储在SQLServer表中的数据更新Oracle表 使用SQL Developer,我完成了以下工作:SQL开发人员:从连接的SQL Server数据库和连接的Oracle数据库连接表,sql,sql-server-2005,oracle11g,oracle-sqldeveloper,Sql,Sql Server 2005,Oracle11g,Oracle Sqldeveloper,我们正在从SQL Server 2005迁移到Oracle 11G。我一直在尝试使用存储在SQLServer表中的数据更新Oracle表 使用SQL Developer,我完成了以下工作: 已创建到Oracle数据库的连接 Created Connection name --> e9_crp Supplied User name and Pass Defined Host Name and SID 我还创建了到包含引用数据的SQL Server的连接 Connection Name -
Created Connection name --> e9_crp
Supplied User name and Pass
Defined Host Name and SID
Connection Name --> sql_data
User Name and Pass
Host and Port
SQL\u data
Oracle使用的连接名称是e9\u crp
SQL Server中的表位于dbo所有者的数据库my\u tmp
中,称为tiers
(my\u tmp.dbo.tiers
)
在SQLDeveloper中,我可以查看、选择和查看分层表。在SQL\u数据连接中,此SQL语句也可以使用工作表:
select * from [my_tmp].[dbo].[tiers]
在e9\u crp
连接模式中尝试连接到此表时,我一直在尝试这样做:
select * from [sql_data].[my_tmp].[dbo].[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)
这是假设我在表标识符中使用连接名称。但是,这显然不起作用。我需要做的是能够在必要时以类似的方式将这两个数据库连接在一起
如何使用SQLDeveloper连接这两个表?我尝试了多次表字符串的连接迭代,但没有成功。非常感谢您的帮助。Oracle有数据库链接的概念,SQL Server有链接服务器的概念。这两种功能都允许您从两个独立的数据库查询数据
这里有一个链接,其中包含设置Oracle数据库链接到SQL Server数据库的说明
这里有一个链接,说明如何将SQL Server链接服务器设置为Oracle DB
也可以看到这篇文章