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 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]。


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


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


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



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

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...