加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 16:07:54 所属栏目:MsSql教程 来源:网络整理
导读:我在网了打了一些,先看下: 来看:http://www.voidcn.com/article/p-oindvgyq-ry.html 一、使用?Microsoft?OLE?DB?Provider?For?ODBC?链接MySQL??? 安装MySQL的ODBC驱动MyODBC?? 1、为MySQL建立一个ODBC系统数据源,例如:选择数据库为test?,数据源名称为myD

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

来看: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?information?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]。


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


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


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



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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读