當做系統整合時, 將不同database 接駁是其中一項平常事. SQL server 之間接駁沒啥難度, 然而, SQL server 接駁Oracle卻大有學問, 在這裡, 會示範如何在SQL server 中制作Oracle Link Database.
- 先下載及安裝Oracle Client. 於Option 中選擇 Runtime only 便可;
- 安裝後開啟SQL Server Management Studio (SSMS), 用sa 權限登入後, 打開Server Objects > Linked Servers > Providers, 確定Oracle Data Provider 已經安裝.
- 設定在SQL server 中使用 Provider, 令它可以存取相關的Providor dll files.
在OraOLEDB.Oracle 中右鍵>Property, ;在 General > Provider Option 中剔取Allow Inprocess
- 開始建立Oracle Linked Server.
在Linked Server 中右鍵, 選取New Linked Server. - 在Oracle 中, 設定如下:
- Linked Name: Linked Server 的名字
- Provider: Oracle Provide for OLE DB
- Product Name: Oracle
- Data Source: tnsname 的名字, 可以在%ORACLE_HOME%\client_1\NETWORK\ADMIN\tnsname.ora 中找到.
- 選取Security, 選取Be made using this security context, 並在此輸入預設的Credential.
- 執行SQL statement 進行測試, 若有column 傳回表示測試成功.
有時除了table 外, 若要執行Oracle 的 store procedure /package function, 則須要再另外設定如下:
- 在安裝Oracle Client 時, 選擇Custom Install 並剔取Oracle Services For Microsoft Transaction Server.
- 開啟SQL server 的Component Services, 選取Component Services > Computers > My Computer > Distributed Transaction Coordinator >Local DTC, 右鍵選取Properties
- 開啟Security Tag, 剔取Network DTC Access, Allow Remote Client, Allow Inbount 和Allow Outbound 後按OK, 之後會重新啟動MSDTC.
Reference
- Connecting SQL Server and Oracle Using Linked Servers, Michael Otey, SQL Server Pro, http://sqlmag.com/sql-server/connecting-sql-server-and-oracle-using-linked-servers
- How to get up and running with Oracle and Linked Servers, psssql, Microsoft, https://blogs.msdn.microsoft.com/psssql/2015/07/31/how-to-get-up-and-running-with-oracle-and-linked-servers/
Leave a Reply