【发布时间】:2013-07-21 16:33:26
【问题描述】:
我们正在从 SQL Server 2005 迁移到 Oracle 11G。我一直在尝试使用存储在 SQL Server 表中的数据对 Oracle 中的表进行更新。
使用 SQL Developer,我完成了以下工作:
-
创建了到 Oracle 数据库的连接
Created Connection name --> e9_crp Supplied User name and Pass Defined Host Name and SID -
我还创建了与包含参考数据的 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,名为 tiers (my_tmp.dbo.tiers)。
在 SQL Developer 中,我可以查看、选择和查看层表。在sql_data 连接中,此 SQL 语句也可以使用工作表:
select * from [my_tmp].[dbo].[tiers]
在e9_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)
这是假设我在表标识符中使用连接名称。但是,这显然行不通。我需要做的是能够根据需要以类似的方式将这两个数据库连接在一起。
如何使用 SQL Developer 连接这 2 个表?我已经为连接尝试了多次迭代表字符串,但没有运气。任何帮助表示赞赏。
【问题讨论】:
标签: sql sql-server-2005 oracle11g oracle-sqldeveloper