簡體   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