微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sqlserver链接服务器使用方法 这里讲oracle的

我在网了打了一些,先看下:

来看:http://www.voidcn.com/article/p-oindvgyq-ry.html

  1. 一、使用 Microsoft OLE DB Provider For ODBC 链接MysqL   
  2.   安装MysqL的ODBC驱动MyODBC  
  3. 1、为MysqL建立一个ODBC系统数据源,例如:选择数据库为test ,数据源名称为myDSN  
  4. 2、建立链接数据库  
  5.   EXEC sp_addlinkedserver @server = ’MysqLTest’, @srvproduct=’MysqL’,  
  6.   @provider = ’MSDAsql’, @datasrc = ’myDSN’  
  7.   GO  
  8.   EXEC sp_addlinkedsrvlogin  
  9.   @rmtsrvname=’MysqLTest’,@useself=’false’,@locallogin=’sa’,@rmtuser=’mys  
  10.   ql的用户名’,@rmtpassword=’MysqL密码’  
  11. 3、查询数据  
  12.   SELECT * FROM OPENQUERY (MysqLTest ,’select * from 表’ )  
  13.   下面这个不行:  
  14.   注意:不能直接用select * from 链接服务器名.数据库名.用户名.表(或视图)  
  15.   四部分名称查询数据,可能是个Bug.  
  16. 二、使用 Microsoft OLE DB Provider For ORACLE 链接ORACLE  
  17. 1、建立链接数据库  
  18.  sp_addlinkedserver ’别名’, ’Oracle’, ’MSDAORA’, ’服务名’  
  19.   GO  
  20.  EXEC sp_addlinkedsrvlogin @rmtsrvname=’别名 ’,@rmtuser=’oracle用户名 ’,@rmtpassword=’密码’  
  21. 2、查询数据  
  22.   SELECT * FROM 别名..用户名.表(视图)  
  23.   注意:四部分名称全部用大写  
  24. 3、执行存储过程  
  25.   使用OPENQUERY:  
  26.   SELECT *  
  27.   FROM OPENQUERY(别名, ’exec 用户名.存储过程名’)   
  28.       
  29. 三、设置链接服务器以访问格式化文本文件  
  30.   用于 Jet 的 Microsoft OLE DB 提供程序可用于访问并查询文本文件。  
  31.     若要直接创建访问文本文件链接服务器而不将文件链接为 Access .mdb 文件中的表,请行 sp_addlinkedserver,如下例所示。  
  32.   提供程序是 Microsoft.Jet.OLEDB.4.0,提供程序字符串为"Text"。数据源是包含文本文件的目录的完整路径名称。 schema.ini 文件(描述文本文件的结构)必须与此文本文件存在于相同的目录中。有关创建 schema.ini 文件的更多信息,请参见 Jet 数据库引擎文档。  
  33.   --Create a linked server.  
  34.   EXEC sp_addlinkedserver txtsrv, ’Jet 4.0’,248); line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important">   ’Microsoft.Jet.OLEDB.4.0’,  
  35.   ’c:/data/distqry’,248); line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important">   NULL,108); list-style:decimal-leading-zero outside; color:inherit; line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important">   ’Text’  
  36.   --Set up login mappings.  
  37.   EXEC sp_addlinkedsrvlogin txtsrv, FALSE, NULL, Admin, NULL  
  38.   --List the tables in the linked server.  
  39.   EXEC sp_tables_ex txtsrv  
  40.   --Query one of the tables: file1#txt  
  41.   --using a 4-part name.  
  42.   FROM txtsrv...[file1#txt]  
  43.     四、链接sql Server服务器:   
  44. 1、使用 ODBC 的 Microsoft OLE DB 提供程序   
  45.   EXEC sp_addlinkedserver ’别名’,’’,’MSDAsql’,NULL,’DRIVER={sql  Server};SERVER=远程名;UID=用户;PWD=密码;’   
  46.   如果加上参数@catalog,可以指定数据库   
  47.   exec sp_addlinkedsrvlogin @rmtsrvname=’别名  ’,@rmtuser=’sa’,@rmtpassword=’密码’   
  48. 2、使用sql Server 的 Microsoft OLE DB 提供程序   
  49.   exec sp_addlinkedserver @server=’别名  ’,@provider=’sqloledb’,@srvproduct=’’,@datasrc=’远程服务器名’   
  50.   exec sp_addlinkedsrvlogin   
  51.   @rmtsrvname=’wzb’,@rmtp   
  52.   assword=’密码’   
  53.   然后你就可以如下:   
  54.   select * from 别名.库名.dbo.表名   
  55.   insert 库名.dbo.表名 select * from 别名.库名.dbo.表名   
  56.   select * into 库名.dbo.新表名 from 别名.库名.dbo.表名   
  57.   go   
  58.   例1、   
  59.   此示例在 sql Server 的实例上创建一台名为 S1_instance1 的链接服务器,   
  60.   该服务器使用 sql Server 的 Microsoft OLE DB 提供程序。  EXEC sp_addlinkedserver @server=’S1_instance1’, @srvproduct=’’,  @provider=’sqlOLEDB’,  @datasrc=’S1/instance1’   
  61.   例2、   
  62.   --建立链接服务器   
  63.   EXEC sp_addlinkedserver ’xiaoming’,’DRIVER={sql   
  64.   Server};SERVER=192.168.0.1;UID=sa;PWD=123;’   
  65.   --建立链接服务器登录映射   
  66.   @rmtsrvname=’xiaoming’,   
  67.   @rmtpassword=’123’   
  68.   --查询数据   
  69.   select * from xiaoming.schooladmin.dbo.agent   
  70.   --删除链接服务器登录映射和链接服务器:   
  71.   exec sp_droplinkedsrvlogin ’xiaoming’ ,’sa’   
  72.   exec sp_dropserver ’xiaoming’   
  73.   注意事项:   
  74.   SET IDENTITY_INSERT [ database.[ owner.] ] { table } { ON | OFF }   
  75.   所以不能通过连接服务器设置此属性   
  76.   into 也存在这样的问题   
  77.   select * into xiaoming.northwind.dbo.tt from   
  78.   xiaoming.northwind.dbo.tt  
  79. 五、设置链接服务器以访问Access数据库  
  80.   使用用于 Jet 的 Microsoft OLE DB 提供程序  
  81.   此示例创建一台名为 test的链接服务器。  
  82.   说明 本示例假设已经安装 Microsoft Access 和示例 northwind 数据库,且  
  83.   northwind 数据库驻留在 C:/。  
  84.   USE master  
  85.   -- To use named parameters:  
  86.   EXEC sp_addlinkedserver  
  87.   @server = ’test’,108); list-style:decimal-leading-zero outside; color:inherit; line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important">   @provider = ’Microsoft.Jet.OLEDB.4.0’,248); line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important">   @srvproduct = ’OLE DB Provider for Jet’,  
  88.   @datasrc = ’C:/northwind.mdb’  
  89.   -- OR to use no named parameters:  
  90.   EXEC sp_addlinkedserver  
  91.   ’test’,248); line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important">   ’OLE DB Provider    ’Microsoft.Jet.OLEDB.4.0’,248); line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important">   ’C:/northwind.mdb’  
  92.   使用  
  93.   select * from test...表名  
  94.   六、连接SYBASE  
  95.   --首先,你要在sql服务器上装上访问sybase的客户端  
  96.   --创建链接服务器  
  97.   exec sp_addlinkedserver ’Sybase1’, ’ ’, ’MSDAsql’, NULL  
  98.   ,’Driver={Sybase System  
  99.   11};Database=hisdb;Srvr=10.211.135.12;UID=sa;PWD=1111;’  
  100.   使用:  
  101.   select * from Sybase1.hisdb.dbo.table1  
  102.   方法二  
  103.   使用ODBC  
  104.   sql Server到SYBASE连接服务器的实现  
  105.   作者: CCBZZP  
  106.   本文的测试环境为:  
  107.   操作系统: WINDOWS2000 SERVER (繁体系统)  
  108.   安装数据库sqlSERVER2000(英文版)和SYBASE8.0客户端(英文版)  
  109.   具体实现步骤:  
  110.   1.要求pc机上安装SYBASE8.0客户端软件和sqlserver2000软件。  
  111.   2.配置windows的ODBC数据源:  
  112.   开始菜单—》程式集—》系统管理工具—》资料数据源(ODBC)—》进入配置用户DSN或者系统DSN均可以:添加—》选择 ADAPTIVE SERVER ANYWHERE8.0—》自定义数据源名称(随意如: SYBASETEST)—》数据库名称(必选!)—》OK完成。  
  113.   3. 选择刚才配置的数据源名称, 再选择 配置, 跳出SYBASETEST MESSAGES:  
  114.   The data source is not connected. Connecting to the data source will  
  115.   provide useful @R_929_4045@ion during configuration. Would you like to  
  116.   connect to the data source?  
  117.   选择YES(OK或确认)即可  
  118.   进入CONNECT TO SYBASE DATABASE画面:  
  119.   USER ID: 输入SYBASE DATABASE的用户  
  120.   PASSWORD: 输入SYBASE DATABASE的用户密码  
  121.   CONNECTION MODE: 可以选择认的SHARE模式  
  122.   选择OK(确认)即可!  
  123.   配置和测试ODBC完成!  
  124.   4.配置sqlserver2000中的连接服务器:  
  125.   企业管理器—》安全性—》连接服务器—》右键新建连接服务器—》定义连接名称; 选其他数据源; 指定程序名称为:SYBASE ADAPTIVE SERVER ANYWHERE PROVIDER8.0; 产品名称可不填; 数据源指定刚才ODBC中定义好的数据源名称;提供程序字符串按以下格式填写:User ID=username; Password=userpasswd(或者按如下格式:UID=username;PWD=userpasswd),这里的用户名密码对应所要连接的SYBASE数据库中的用户名密码 —》 安全性标签页里:设置用此安全上下文进行,并录入SYBASE的数据库用户名密码—》服务器选项标签页可认—》确定。  
  126.   5.准备工作全部完成!在sqlserver企业管理器—》安全性—》连接服务器打开刚建好的连接服务器—》点击表,即可在右边窗口看到该SYBASE数据库用户拥有的所有表名,但在这里还并不能查看表的记录,这个需要在sqserver的查询分析器中用具体sql实现!访问表时,使用格式为: [连接服务器名]..[SYBASE用户].[表名]。

现在说下我的问题:

我在用sql来建立连接的时候(我连的是oracle的服务器),我用了我装在本地的oracle客户端,按照向导建立完了已后,在使用下面视图的时候就看到了一个问题:

(select * from OPENQUERY(LINK_BIZ,'select  *  From cms.QX_SALDTL_V'))

错误

服务器: 消息 7320,级别 16,状态 2,行 1
未能对 OLE DB 提供程序 'OraOLEDB.Oracle' 执行查询
OLE DB 错误跟踪[OLE/DB Provider 'OraOLEDB.Oracle' ICommandText::Execute returned 0x80040155]。


是图就是出现错误时选择的连接方式


下面就提供一个正确的连接方式:


这们只要将上面的连接提供程序改为这个就行,其它的与上面的一样设置,现在我们再来执行上面的查询的时候就可以看到我们想要的结果了



最后要感谢给我提供帮助的朋友,感谢!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐