PART 1:
sql server中經過 linked server的方式鏈接到oracle
1.首先須要在sql server的主機中安裝oracle客戶端。
2.其次要在tnsname.ora中加入須要鏈接的oracle服務器的鏈接信息。
3.在SQLSERVER中,連接服務器->訪問接口->OraOLEDB.Oracle->右鍵屬性,選中 "Allow inprocess" (中文爲:容許進程內)
不然在查詢時出現錯誤:「沒法初始化連接服務器 "linkabc" 的 OLE DB 訪問接口 "OraOLEDB.Oracle" 的數據源對象".
4.創建連接服務器,填寫如下內容:
連接服務器:即取個此連接的名字,如Link_Oracle.
訪問接口:Oracle provider for OLE DB. 或者選擇Microsoft OLE DB Provider for Oracle.
經過實踐得出,若是選擇前者,則在數據類型的兼容性上不比後者,會出現這樣的錯誤: 數據不適用於類型 "numeric"。
數據源:即第2步中配置的服務名.
安全性->使用此安全上下文創建鏈接->遠程登陸:即ORACLE數據庫的用戶名;使用密碼:即此用戶的密碼.
5.利用linked server的方式進行查詢的方法,用如下兩種之一都行,建議用後一種,速度更快,甚至能查詢虛擬視圖等更多的表:
html
SELECT * FROM [LINK_JW_ORA]..[SJZX].[ASJPBK] SELECT * FROM openquery(LINK_JW_ORA,'SELECT * FROM ASJPBK')
另外創建到ORACLE數據庫的連接服務器時,能夠不經過圖形化的方式,而執行如下兩個存儲過程:
sql
EXEC sp_addlinkedserver @server=N'LINK_JW_ORA', --要建立的連接服務器別名 @srvproduct=N'ORACLE10G', --產品名稱 @provider=N'OraOLEDB.Oracle', --OLE DB 驅動名稱 @datasrc=N'DB02' --數據源oracle的網絡服務名,即tnsnames.ora中配置的
EXEC sp_addlinkedsrvlogin 'LINK_JW_ORA', --已創建的連接服務器名 'false', -- 固定 NULL, --爲每一個登錄SQL SERVER的用戶使用此連接服務器,則寫用戶名*/ 'sjzx', --賬號(oracle) 'sjzx' --密碼
刪除linked server,能夠用以下存儲過程:
數據庫
EXEC master.dbo.sp_dropserver @server=N'LINK_JW_ORA', @droplogins='droplogins'
PART 2:
SQL SERVER創建到SERVER SQL的linked server
經過圖形的方式:
1.連接服務器:即此連接的名稱,如Link_MSSQL.
2.服務器類型->其餘數據源
3.訪問接口:選擇SQL Native Client.
4.數據源:即遠程SQL SERVER服務器的IP地址,如192.168.1.23.
5.訪問接口字符串:即訪問的用戶和密碼,如:User ID=Jhon;Password=123456.
6.安全性選項,選擇使用此安全上下文創建鏈接,->遠程登陸login和password爲剛纔寫的Jhon,123456.
查詢示例:
windows
select * from openquery(LINK_DB_CENTER,'SELECT * FROM DBCenter.sys.all_objects'); select * from LINK_DB_CENTER.DBCenter.sys.all_objects;
PART 3
SQL SERVER創建到postgreSQL的linked server
1.安裝prostgre for windows 的OBDC驅動。
2.在系統中添加到postgres的OBDC數據源。
3.在SQL SERVER中創建Linked Server,圖形化的方式建立時,填寫如下信息便可:
連接服務器: 咱們給這個連接服務器取的名字,如Link_PG.
訪問接口: Microsoft OLE DB Provider for OBDC Drivers.
產品名稱: 填寫postgreSQL便可.
數據源: 這個很重要, 就是咱們在系統中添加的ODBC數據源的名稱.
安全性->使用此安全上下文創建鏈接->遠程登陸:即MYSQL數據庫的用戶名;使用密碼:即此用戶的密碼.
注意:
PostgreSQL默認只監聽本地端口,用netstat -tuln只會看到「tcp 127.0.0.1:5432 LISTEN」。
修改postgresql.conf中的listen_address=*,監聽全部端口,這樣遠程才能經過TCP/IP登陸數據庫,
用netstat -tuln會看到「tcp 0.0.0.0:5432 LISTEN」。
ref: http://www.cnblogs.com/hiloves/archive/2011/08/20/2147043.html
PART 4
SQL SERVER創建到MYSQL的linked server
1.安裝MYSQL for windows 的OBDC驅動。
2.在系統中添加到MYSQL的OBDC數據源。
3.在SQL SERVER中創建Linked Server,圖形化的方式建立時,填寫如下信息便可:
連接服務器: 咱們給這個連接服務器取的名字,如Link_Mysql.
訪問接口: Microsoft OLE DB Provider for OBDC Drivers.
產品名稱: 填寫 MYSQL便可.
數據源: 這個很重要, 就是咱們在系統中添加的ODBC數據源的名稱.
安全性->使用此安全上下文創建鏈接->遠程登陸:即MYSQL數據庫的用戶名;使用密碼:即此用戶的密碼.
參考文章:
http://blog.sina.com.cn/s/blog_517cae3c01017n2s.html
http://blog.csdn.net/iwteih/article/details/4551118
http://www.cnblogs.com/ShineTan/archive/2008/12/25/1362472.html
http://anigh.blog.163.com/blog/static/33758654200924053346/
http://www.cnblogs.com/hukn/archive/2011/07/27/SQL_Server_ODBC_LinkServer_MySQL.html
http://blog.miniasp.com/post/2008/07/How-to-setup-Linked-Server-in-SQL-Server-2005.aspx
http://www.cnblogs.com/chinhr/archive/2009/03/10/1408033.html
安全