SQL SERVER 创建远程数据库链接 mysql oracle sqlserver

遇到的坑

在连接Oracle时,因为服务器为10g 32位版本,然后在本地安装了32为10g客户端,然后一直报错【7302、7303】,后来下载了12c 64位版本,安装成功后,问题解决

原因:mssql和oracle只能进行相同位数版本的连接

由于连接mysql时直接用的odbc连接,所以未碰到版本冲突,如有冲突请告诉我一下哈

 

/*                            MSSQL
--创建远程链接
EXEC sp_addlinkedserver
@server='PACS_LINK', --被访问的服务器别名
@srvproduct='', --SqlServer默认不需要写,或ORACLE
@provider='SQLOLEDB', --不同的库都是不一样的,OLE DB字符
@datasrc='59.110.5.215,51800'--要访问的服务器
GO
EXEC sp_addlinkedsrvlogin 
@rmtsrvname='PACS_LINK', --被访问的服务器别名
@useself='false', --固定这么写
@locallogin='sa', --本地操作应户名
@rmtuser='testpass', --被访问的服务器用户名
@rmtpassword='1qaz@WSX'--被访问的服务器用密码
GO
----//删除连接服务器
--EXEC sp_dropserver "PACS_LINK"
--  select * from PACS_LINK.[NewNanNingSystemDB].[dbo].[V_DeviceList]
*/

/*                            MYSQL
--建立数据库链接服务器
EXEC sp_addlinkedserver
@server =N'LIS_LINK', --要创建的链接服务器别名
@srvproduct=N'MYSQL', --产品名称
@provider=N'MSDASQL', --OLE DB 驱动名称(固定)
@datasrc=N'mysql' --数据源(需要修改,格式 ip:端口/SERVICE_NAME)
GO
EXEC sp_addlinkedsrvlogin
@rmtsrvname='LIS_LINK', --已建立的链接服务器名
@useself='false', -- 固定 *
@locallogin= NULL, --为每个登陆SQL SERVER的用户使用此链接服务器,则写用户名*固定
@rmtuser='root', --帐号(需要修改)
@rmtpassword='inteall' --密码(需要修改)
GO
----//删除连接服务器
--    EXEC sp_dropserver "LIS_LINK"
--    SELECT * FROM OPENQUERY([LIS_LINK], 'SELECT * FROM lisinterface.temp ')
*/

/*                            ORACLE
--建立数据库链接服务器
EXEC sp_addlinkedserver
@server =N'HIS_LINK', --要创建的链接服务器别名
@srvproduct=N'ORACLE', --产品名称(固定)
@provider=N'OraOLEDB.Oracle', --OLE DB 驱动名称(固定)
@datasrc=N'ORCL1' --数据源(需要修改,格式 ip:端口/SERVICE_NAME)
GO
EXEC sp_addlinkedsrvlogin
'HIS_LINK', --已建立的链接服务器名
'false', -- 固定 *
 NULL, --为每个登陆SQL SERVER的用户使用此链接服务器,则写用户名*固定
'hisdata', --帐号(oracle)(需要修改)
'inteall2012' --密码(oracle)(需要修改)
GO
----//删除连接服务器
--    EXEC sp_dropserver "HIS_LINK"
--    SELECT * FROM OPENQUERY([HIS_LINK], 'SELECT * FROM V_INTEFACECOSEDETAIL ')
--select * from openquery(HIS_LINK,'select * from temp')
*/

 

posted @ 2018-08-01 14:57  听雨的人  阅读(1654)  评论(0编辑  收藏  举报