在sql2008上面創建dblink
一.創建oracle的連接服務器
1.首先電腦上應該安裝有oracle的客戶端,並能鏈接到服務器
(由於這裏是TIPTOP ERP系統+oracle數據庫,因此電腦上oracle的安裝就先忽略)
2.在sql server2008的Management Stadio 中——連接服務器——新建連接服務器 sql
3.在新建對話框"常規"選項卡里面:
【連接服務器名字】:本身取一個,我這裏寫ERP
【訪問接口選擇】:Microsoft OLEDB Provider for Oracle 驅動
【產品名稱】:Oracle
【數據源】:寫上本身電腦上tnsnames.ora 文件中配置的服務名;我這裏是topprod
【訪問接口字符串】:user id=TEST;password=TEST(能夠省略) 數據庫
4.在新建對話框"安全性"選項卡里面,選擇安全性選項頁,
使用此安裝上下文創建鏈接:
【遠程登陸】:TEST
【使用密碼】:****** 安全
5.SQL的寫法有兩種
<1>使用T-SQL語法:
SELECT * FROM LNK1..用戶名.表名 --注意用戶名稱,表名稱要大寫 服務器
<2>使用PLSQL語法:
select * from openquery(LNK1,'select * from 用戶名.表名') oracle
第二種訪問方式比第一種約快50%;第二種訪問方式跟直連ORACLE的速度至關;
第一種訪問方式可能會致使一些意外錯誤,如:該表不存在,或者當前用戶沒有訪問該表的權限。
若是須要訪問的column中使用沒有精度的數據類型,這兩種查詢方式均可能會報錯,這是ORACLE的BUG,
沒法修正,只能經過查詢語句的特殊處理規避這一問題:
OLEDB 提供程序 'OraOLEDB.Oracle' 爲列提供的元數據不一致。執行時更改了元數據信息。
app
二.創建SQl Server的連接服務器(創建方法同上)
select * from [192.168.1.14].[EFNETDB].[dbo].py05b_shya
Select * From [連接服務器名].[遠程數據庫名].[全部者].[表名]
Select * from [127.0.0.1].[cntvs].[dbo].[t_class] ide