[英]SQL Developer: Joining tables from connected SQL Server DB and connected Oracle DB
我們正在從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]
但這返回一個錯誤,指出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
另請參閱此帖子...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.