EXEC master.dbo.sp_addlinkedserver
@server = N'TESTLINK',
@srvproduct=N'Oracle',
@provider=N'MSDAORA',
@datasrc=N'TEST'
GO
這一句在 SQLServer 下創建一個數據庫鏈接。
連接名為TESTLINK
Oracle 數據源是 TEST
要求在SQL Server 的機器上面,安裝有Oracle 的客戶端。
那個Oracle 數據源,配置文件在
E:\Oracle\product\10.2.0\clIEnt_1\NETWORK\ADMIN
目錄下。
內容為:
# tnsnames.ora Network Configuration File:E:\Oracle\product\10.2.0\clIEnt_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
TEST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.210)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ORCL)
)
)
注: 本機只安裝了 SQL Server EXPRESS 與 Oracle 10 的客戶端。
Oralce 10 服務器安裝在 另外一台機器上。
EXEC
master.dbo.sp_addlinkedsrvlogin
@rmtsrvname = N'TEST',
@locallogin = NULL ,
@useself = N'False',
@rmtuser = N'test',
@rmtpassWord = N'test123'
GO
這一句是設置默認用什麼用戶名/密碼來訪問Oracle 數據庫。
上面的例子是用戶名為test 密碼為 test123
數據庫鏈接創建完畢後,可以嘗試查詢:
這裡的TESTLINK..TEST.TEST_MAIN。
第一個TESTLINK是數據庫鏈接名
第二個TEST 是Oracle 那裡的Test 用戶的方案名
TEST_MAIN 是Test 用戶下的一個表。
1> select * from TESTLINK..TEST.TEST_MAIN;
2> go
ID VALUE
--------------------------------------------------
1 ONE
2 TWO
3 TWO
(3 行受影響)
注:假如創建鏈接完畢後,執行查詢的時候,提示MSDAORA 找不到Oracle 客戶端的話。如果本機安裝的是Oracle 9 / 10 。那麼有可能是權限的問題,需要額外在操作系統那裡設置一下。
以本機為例子:
需要選擇E:\Oracle\product\10.2.0\clIEnt_1這個目錄。
鼠標右鍵,彈出菜單中,選擇“屬性”。
然後在“安全”選項中,增加一個EveryOne 用戶。並設置完全控制。
然後重新啟動計算機。
重新啟動完畢後,應該就正常了。