链接服务器

64位SqlServer通过链接服务器与32位oracle通讯

拥有回忆 提交于 2020-04-01 13:57:34
在SQL SERVER里只安装了32位的oracle客户端的情况下,添加链接服务器然后执行查询会报如下信息: 原因:在64位的SQL Engine中已经不提供 MSDAORA 的驱动了,可以使用 OraOLEDB.Oracle,安装oracle 64位客户端即可。 1、下载客户端win64_11gR2_client.zip和win32_11gR2_client.zip http://download.oracle.com/otn/nt/oracle11g/112010/win64_11gR2_client.zip http://download.oracle.com/otn/nt/oracle11g/112010/win32_11gR2_client.zip 2、安装上面两个客户端 安装32位客户端到 C:\Oracle\product\11.2.0\client_32 安装32位客户端到 C:\Oracle\product\11.2.0\client_64 然后在各自目录下找到network\admin,修改tnanames.ora,添加oracle连接,两个客户端都加如下: sap_mid= (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST = 10.203.22.26) (PORT = 1521)

SQLServer数据库访问链接

久未见 提交于 2020-03-16 13:25:20
一、方法一:通过SQL语句 EXEC sp_addlinkedserver @server='DBMES', --链接服务器的名称 @srvproduct='', @provider='SQLOLEDB', @datasrc='192.168.***.***' --要访问的的数据库所在的服务器的ip GO EXEC sp_addlinkedsrvlogin 'DBMES', --链接服务器别名 'false', NULL, 'sa', --要访问的数据库的用户 'xxxx' --要访问的数据库,用户的密码 GO 上面,"链接服务器的名称"随便取, 只需修改 "要访问的的数据库所在的服务器的ip" ,“用户”和“密“码 (我用的要访问的sql sever数据库sa账号和密码)。 成功执行后,刷新CESHI左侧链接服务器,会出现新建的链接服务器,如下图: 通过SQL语句查询:SELECT * FROM [DBMES].[数据库名].[dbo].[表名] 来源: https://www.cnblogs.com/renleiblog/p/12503042.html

SQLServer通过链接服务器调用Oracle 存储过程

丶灬走出姿态 提交于 2020-03-06 07:09:48
语法: declare @输出参数 数据类型; exec(' exec 存储过程(?, ?)', 输入参数, @输出参数 out) at 链接服务器名 参考文章: SQL2008 链接Oracle 调用存储过程 https://blog.csdn.net/Cc_Rain0624/article/details/79100544 Sqlserver通过链接服务器访问Oracle的那些事儿 http://blog.sina.com.cn/s/blog_614b6f210100t80r.html 来源: https://www.cnblogs.com/tc310/p/11078874.html

跨数据库服务器查询和跨表更新

梦想与她 提交于 2020-03-04 13:39:01
一.摘要 本文通过实际业务场景讲解如何实现跨数据库服务器的数据查询, 以及跨表更新的SQL语法. 二.业务场景 想实现的功能很简单, 在我的本地一个表用来保存省的信息: T_Province 在另外一台服务器上也有一个保存省的表province,其中有我本地没有的provience_name_en和provience_id信息.我希望将它们保存到我的表中. 虽然用程序很容易实现,但是我觉得如果能直接操作数据库的话将更简单,而且还能学习到跨服务器查询的知识. 三.准备工作 首先我在本地 T_Province 表中添加了 ProvinceNameEn 和 ProvinceId 两个字段.接下来就要想办法为这两个字段填充数据. 四.跨服务器查询 首先需要解决跨服务器查询的问题. 先来看我的最终实现: --创建链接服务器 exec sp_addlinkedserver @server= 'SQL2', @srvproduct= '', @provider='SQLNCLI', @datasrc = '192.168.9.123' --登录链接服务器 exec sp_addlinkedsrvlogin @rmtsrvname = 'SQL2', @useself = 'false ', @locallogin = null, @rmtuser ='sa', @rmtpassword =

Linked Server 1:链接服务器

倖福魔咒の 提交于 2020-03-04 13:36:44
链接服务器(Linked Server)允许访问针对OLE DB数据源的分布式异构查询, 通过使用sys.sp_addlinkedserver创建链接服务器后,可以对此服务器运行分布式查询。 如果链接服务器被定义为SQL Server实例,则可以执行远程存储过程。 一,链接服务器 使用 sys.sp_addlinkedserver 添加链接服务器,除了必须在本地自定义一个链接服务器的别名(Alias)之外,还必须指定链接服务器的产品名称(Product Name)、提供程序名称(Provider Name)、数据源(Data Source)、提供程序字符串( Provider String)等参数,添加成功之后,系统自动创建一个默认登陆映射,用于访问链接服务器。 sp_addlinkedserver [ @server= ] 'server' [ , [ @srvproduct= ] 'product_name' ] [ , [ @provider= ] 'provider_name' ] [ , [ @datasrc= ] 'data_source' ] [ , [ @location= ] 'location' ] [ , [ @provstr= ] 'provider_string' ] [ , [ @catalog= ] 'catalog' ] 参数解释: @server=

跨服务器,跨库 联合查询

我只是一个虾纸丫 提交于 2020-03-04 13:36:22
--按月统计报告 中心端服务 10.141.222.78 进行统计 use risreportdb Select substring(bgrq,5,2) as month,count(distinct StudyUid) as mycount from TB_RIS_REPORT group by substring(bgrq,5,2) Select substring(bgrq,5,2) as month ,count(distinct StudyUid)as mycount from TB_RIS_REPORT2 group by substring(bgrq,5,2) --按月统计影像 --2台电脑之间要启用命名管道 和1433端口。 --启用Ad Hoc Distributed Queries: exec sp_configure 'show advanced options',1 reconfigure exec sp_configure 'Ad Hoc Distributed Queries',1 reconfigure --进行跨服务器查询 SELECT substring(r.BGRQ,5,2)as month, count(distinct r.StudyUid) as mycount FROM OPENROWSET('SQLOLEDB', '192.168

资料(sp_serveroption)

◇◆丶佛笑我妖孽 提交于 2020-03-04 12:46:26
sp_serveroption 为远程服务器和链接服务器设置服务器选项。 在此次发布的版本中,使用 use remote collation 和 collation name 这两个新选项增强了 sp_serveroption 选项,使其支持链接服务器中的排序规则。 语法 sp_serveroption [ @server = ] ' server ' , [ @optname = ] ' option_name ' , [ @optvalue = ] ' option_value ' 参数 [ @server = ] ' server ' 是要为其设置选项的服务器的名称。 server 的数据类型为 sysname ,无默认值。 [ @optname = ] ' option_name ' 是为指定的服务器设置的选项。 option_name 的数据类型为 varchar(35) ,无默认值。 option_name 可以是下列值中的任何一个。 值 描述 collation compatible 影响分布式查询在链接服务器上的执行。如果该选项设置为 true ,则 Microsoft® SQL Server™ 假定链接服务器中的所有字符在字符集和排序规则序列(或排序次序)上与本地服务器兼容。这使 SQL Server 得以将字符列上的比较运算发送给提供程序去执行

SQL2000与Oracle的分布式操作

你离开我真会死。 提交于 2020-03-04 09:20:21
最近做的项目都会与Oracle产生数据的级联,在此标记: 数据库: 我方项目:SQL2000(独立服务器--Win2003) 客户:Oracle 9I(独立服务器--Win2003) 需求: 当我方项目中特定数据发生变动时,包括新增,更新,删除时.要同步客户方的某数据库中数据. 本来想用触发器来做.考虑到维护问题所以放弃.改用分布式操作. 过程: 首先要在我方服务器上安装Oracle客户端(因为要用OLE DB来连接),安装过程略过.测试Oracel没有问题后,就可以直接在 "企业管理器" 中建立 "链接服务器" 了 "企业管理器"->选择自己的SQL服务器-->"安全性"-->"链接服务器". 如图1 图1: 右键单击"链接服务器"-->选择"新建链接服务器"-->在弹出的窗体的"链接服务器"中写入一个名字"HIS"(以后在TSQL中要用地)"服务器类型"下选择"其它数据源" 在"提供程序名称"的右面的下拉框中选中"Microsoft OLE DB Provider for Oracle" 如图2 图2: 下面就是填写 "产品名称",数据源,连接字符串. 这些内容都要可以在下面文件 "H:\oracle\ora92\network\ADMIN\tnsnames.ora" 找到,其中"H:"是Oracle的安装盘 用记事本打开后内容如下: # TNSNAMES.ORA

OPENQUERY (Transact-SQL)

拜拜、爱过 提交于 2020-03-04 09:04:09
对给定的链接服务器执行指定的传递查询。该服务器是 OLE DB 数据源。OPENQUERY 可以在查询的 FROM 子句中引用,就好象它是一个表名。OPENQUERY 也可以作为 INSERT、UPDATE 或 DELETE 语句的目标表进行引用。但这要取决于 OLE DB 访问接口的功能。尽管查询可能返回多个结果集,但是 OPENQUERY 只返回第一个。 Transact-SQL 语法约定 语法 OPENQUERY ( linked_server ,'query' ) 参数 linked_server 表示链接服务器名称的标识符。 ' query ' 在链接服务器中执行的查询字符串。该字符串的最大长度为 8 KB。 注释 OPENQUERY 不接受其参数的变量。 OPENQUERY 不能用于对链接服务器执行扩展存储过程。但是,通过使用四部分名称,可以在链接服务器上执行扩展存储过程。例如: EXEC SeattleSales.master.dbo.xp_msver 权限 任何用户都可以执行 OPENQUERY。用于连接到远程服务器的权限是从为链接服务器定义的设置中获取的。 示例 A. 执行 SELECT 传递查询 以下示例将使用“用于 Oracle 的 Microsoft 访问接口”针对 Oracle 数据库创建一个名为 OracleSvr 的链接服务器。然后

SQL 使用openquery进行跨库操作

谁说我不能喝 提交于 2020-03-04 09:02:50
摘自:http://www.cnblogs.com/aji88/archive/2009/11/06/1597263.html 对给定的链接服务器执行指定的传递查询。该服务器是 OLE DB 数据源。OPENQUERY 可以在查询的 FROM 子句中引用,就好象它是一个表名。OPENQUERY 也可以作为 INSERT、UPDATE 或 DELETE 语句的目标表进行引用。但这要取决于 OLE DB 访问接口的功能。尽管查询可能返回多个结果集,但是 OPENQUERY 只返回第一个。 Transact-SQL 语法约定 语法 OPENQUERY ( linked_server ,'query' ) 参数 http://ddue.schemas.microsoft.com/authoring/2003/5 NS = "http://ddue.schemas.microsoft.com/authoring/2003/5" linked_server 表示链接服务器名称的标识符。 ' query ' 在链接服务器中执行的查询字符串。该字符串的最大长度为 8 KB。 备注 OPENQUERY 不接受其参数的变量。 在 SQL Server 2000 和更高版本中,OPENQUERY 不能用于对链接服务器执行扩展存储过程。但是,通过使用四部分名称,可以在链接服务器上执行扩展存储过程。例如: