sql服务器添加oracle的链接服务器步骤
SQLServer链接服务器至Oracle

SQLServer链接服务器至Oracle1. 我方服务器必须安装msdtc服务,并进行相应配置。
2. 我方服务器必须安装oracle client,这个要对应中心站oracle版本的客户端。
3. 我方服务器必须安装Oracle Services For Microsoft Transaction Server [版本]Oracle Provider for OLE DB [版本]这2个可以在Oracle官方网站下载[/technology/software/tech/windows/odpnet/index.html]此文件为分布式事务必须的插件。
4. Oracle给我们分配一个Oracle的用户名和密码,具有写入/读取表的权限。
5. 在我方系统的SQLServer服务器上建立链接服务器,指向Oracle数据库,链接服务器访问接口必须为[Oracle Provider for OLE DB](否则无法启动分布式事务)。
1. 在写存储过程向oracle数据库中 insert、delete、update的时候,一定要加上SET XACT_ABORT ON此为开启镶嵌事务标志,否则分布式事务会失败。
2. 对于从oracle或sqlserver中select数据的时候没有必要加入事务范围内,会锁表浪费时间。
3. 查询语句格式为:SELECT * FROM openquery(ORA_DBENSIS, 'select ID from TEST_TRANS')或者SELECT * FROM ORA_DATABASE..TEST_USER.TEST_TRANS用户名TEST_USER、表名TEST_TRANS必须大写4. 插入语句格式为:INSERT openquery(ORAENSIS, 'select ID from TEST_TRANS where 1=0')values (1)在SQL SERVER中访问ORACLE表的方法在SQL SERVER中,能否访问ORACLE表,进行查询操作呢?答案无疑是可以的,下面就为你介绍在SQL SERVER中访问ORACLE表的实现方法,供您参考。
Sql server建立Oracle的链接服务器, 跟Oracle的dblink差不多

一、安装配置oracle客户端要访问orcale数据,必须在访问的客户端机器上安装oracle客户端。
Orcale有两种形式的客户端:●完整的客户端包括访问服务器端数据库的基本Oracle 的Microsoft OLE DB 访问接口需要Oracle Client Software Support File以及SQL*Net 。
还包括用于配置客户端设置的工具、sqlplus、企业管理器等一系列的工具。
●立即客户端(instant client)这个客户端体积很小,但是只包括了访问orcale服务器的最基本的支撑驱动,没有设置管理工具,也找不到可用的图形界面。
对客户端的设置需要手工就行。
目前orcale比较新的是oracle 10g版本,以这个版本为例。
1、下载oracle 10 的客户端可以到orcale官方网站下载,需要先注册,然后下载。
下载适用于Microsoft Windows (32-bit)的Oracle Database 10g Client Release 2的客户端,下载地址:/otn/nt/oracle10g/10201/10201_client_win32.zip2、安装oracle 10 客户端下载好后,解压,安装。
安装时有四个选项:●Instantclient,相当于最小化安装。
●管理员,完整安装。
●运行时自定义为了管理方便,一般以管理员方式安装。
3、配置oracle 10 客户端在客户端主要需要配置两个设置,命名方法和服务器别名,还有一个监听程序是服务端需要用的,用来监听客户端的访问,客户端不必设置监听程序。
这些设置都能在net manager工具中进行,在oracle程序组中的“配置和移植工具”中的“net manage r”。
如图所示:概要文件就是用来设置命名方法和验证方式的的3.1.命名方法在窗口左面的上部下拉列表中选“命名”,左边窗口显示目前可用的方法,右边是已经选择的命名方法,几个主要的命名方法有:●TNSNAMES表示采用TNSNAMES.ORA文件来解析●ONAMES表示Oracle使用自己的名称服务器(Oracle Name Server)来解析,目前Oracle建议使用轻量目录访问协议LDAP来取代ONAMES●HOSTNAME表示使用host文件,DNS,NIS等来解析一般使用本地命名方式来解析服务器名,即使用TNSNAMES.ORA中设置的服务器名。
sql连接orcale

一、创建sqlserver链接服务(sqlserver链接oracle)首先sqlserver 链接oracle可以通过两个访问接口:“MSDAORA” 和“OraOLEDB.Oracle”1、“MSDAORA”访问接口是由Microsoft OLE DB Provider for Oracle提供的,这里建议不使用此接口进行链接。
通过该访问接口建立的链接服务器在进行查询oracle表(带数据类型CLOB、BLOB字段)时会报这个错误“链接服务器""的 OLE DB 访问接口 "MSDAORA" 返回了消息 "发生了一个Oracle 错误,但无法从 Oracle 中检索错误信息。
"。
链接服务器""的 OLE DB 访问接口 "MSDAORA" 返回了消息 "数据类型不被支持。
"。
消息 7321,级别 16,状态 2,第 1 行准备对链接服务器 "" 的 OLE DB 访问接口 "MSDAORA" 执行查询"select * from SYS_MESSAGE"时出错。
”链接服务器 "LINK2ORACLE" 的 OLE DB 访问接口 "MSDAORA" 为列提供的元数据不一致。
对象 ""CMCC"."OS2_GIS_CELL"" 的列 "ISOPENED" (编译时序号为20)在编译时有 130 的 "DBTYPE",但在运行时有错。
2、“OraOLEDB.Oracle” 访问接口是由oracle 的Oracle Probider forOLE DB 驱动提供的。
它解决了两个数据库类型不一致的的问题。
Oracle与SQLServer建立DBlink连接

Oracl e 与SQL Server建立DBlink连接设置步骤一、主旨:本操作说明主要用于指导实现Oracle 与SQL Server建立DBlink连接二、要求:(1)Oracle版本需在9i以上(2)SQL Server需在2000 SP3以上三、配置方法与步骤:1、通过ODBC建立连接(1)在Oracle服务器上打开“ODBC数据源管理器”。
路径:开始—>控制面板->管理工具-〉数据源(ODBC)。
(2)选中“系统DSN”选项卡,点击“添加"按钮,在弹出的对话框中选中SQL Server 驱动程序,点击“完成"。
(3)在弹出的对话框中输入数据源名称、描述以及需连接到的SQL Server所在服务器IP或服务器名称,点击“下一步”。
(4)选择SQL Server登陆认证模式,根据SQL Server端认证设置,若集成Window认证则选择“使用网络登陆ID的Windows NT验证”,若未SQL Server认证则选择“使用用户输入登陆ID和密码的SQL Server验证”,此处我们选择第二选项,然后输入登陆ID与密码,点击“下一步”.(5)选择需建立连接的SQL Server数据库,点击“下一步"。
(6)根据需求勾选相关选项,点击“完成”(7)点击测试数据源,若出现“连接失败”,根据《远程连接SQL Server失败错误原因排查说明文档》进行检查,若出现“测试成功",则连续点击两次“确定"完成配置。
(8)打开Oracle安装目录,进入hs文件目录%Oracle_Home%/hs/admin,复制inithsodbc。
ora文件,新命名为inithstest。
ora.命名规则init<SID>。
ora(9)编辑inithstest.ora文件内容如下(10)进入hs文件目录%Oracle_Home%/Network/Admin,修改Oracle listener。
记录SQLServer2019链接Oracle11gR2的过程

记录SQLServer2019链接Oracle11gR2的过程前言基于作者项目特性,需要从A方Oracle导出数据到SQL Server 中,A方使用Oracle 11g R2,我方使用SQL Server 2019,在搜集相关资料以及结合项目进展,提出使用SQL Server链接Oracle的方式,便于简化开发环境。
操作过程简述1.安装配置OracleClient在服务器上安装SQL Server和Oracle Client(如win64_11gR2_client),配置tnsnames.ora(以下为测试环境配置)1 ORCLDB=2 (DESCRIPTION =3 (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))4 (CONNECT_DATA =5 (SERVER = DEDICATED)6 (SERVICE_NAME = ORCL)7 )8 )9 #其中HOST = 127.0.0.1输入Oracle服务器IP,PORT输入Oracle端口,SERVICE_NAME输入目标Oracle的服务名。
2.配置SQL Server(非必要配置)打开 SQL Server <version> Configuration Manager选择SQL Native Client <all version> Configuration设置[TCP/IP]为Enable配置SQL Server Network Configuration配置Protocols For MSSQLSERVER中[TCP/IP]为Enable打开MSSM,选择目标数据库,右键[属性]选择[连接],确认勾选[允许远程连接到此服务器]3.配置链接数据库MSSM中目标数据库->服务器对象->链接服务器展开Providers,双击OraOLEDB.Oracle(该选项需要在SQL Server服务器上预装OracleClient),确认勾选[允许进程内]和[支持"Like"运算符],其它不勾选,确认保存右键[链接服务器],选择[新建链接服务器]选择[常规]左侧边栏,提供程序选择[Oracle Profider for OLE DB],产品名称输入Oracle,数据源输入:1)输入tnsnames.ora中配置的数据源,访问接口字符串(以下为测试环境配置):[IP地址]:1521/orcl数据源格式为IP:端口/实例选择[安全性]左侧边栏,单选[使用此安全上下文建立连接(M):],在[远程登录:]和[使用密码:]对应的输入框中输入Oracle访问的用户名和密码。
如何实现SQLServer2008R2连接Oracle11gR2————64位

如何实现SQLServer2008R2连接Oracle11gR2(64位版)一、实现连接前的准备软件准备1、SQLServer2008R2点击下载2、win64_11gR2_client点击下载3、ODAC112021Xcopy_x64点击下载二、连接方法通过SQLServer的LinkedServer功能连接Oracle三、实际操作1.1首先配置Client在SQLServer的主机上安装完Oracle的客户端后,可以在数据源里面看到Oracle的ODBC驱动,注意客户端的版本,最注意的是要根据操作系统来选择是64位或32位(此处选择64位),(在64位操作系统必须安装64位Oracle客户端才会在windows的数据源中才能显示出如下图所示驱动)PS.在64位操作系统中可以同时安装64位和32位Oracle客户端,其中默认配置文件已后面安装的目录和文件为准。
两个客户端都生效。
安装完成后在Oracle_Home(64位)下面查看的NETWORK\ADMIN找到tnsnames并加入如下内容注:ORCL =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl)))1.2安装ODBC驱动先解压安装包ODAC112021Xcopy_x64,把里面的文件都解压到一个文件夹里,我是解压到D:\ODAC112040Xcopy_64bit,然后打开cmd,进入到这个文件夹。
如图输入"install.bat all D:\OracleClient ODAC"(不含双引号)。
这里有几个参数需要特别注意,这里我们传入了三个参数,但最多可以传入四个。
注:后面的“D:\OracleClient ODAC”是安装目录,按照需求更改安装成功后会在SQLServe->Linked Servers中找到OraOLEDB.Oracle 服务,表示安装成功。
sqlserver获取oracle数据库方法

sqlserver获取oracle数据库方法要连接和获取oracle数据库中的数据,可以使用SQL Server的Linked Server功能。
Linked Server允许SQL Server与其他数据库之间建立连接来交互数据。
以下是连接Oracle数据库的步骤:1. 在SQL Server管理工具中,打开“服务器对象”下的“链接服务器”文件夹。
2.右键单击“链接服务器”文件夹,选择“新建链接服务器”。
3.在“常规”选项卡中,输入连接服务器的名称。
可以使用任意合适的名称。
4. 在“服务器类型”下拉菜单中选择“Oracle”。
5. 在“安全性”选项卡中,选择“Be made using this security context”选项,并输入Oracle数据库的用户名和密码。
6.在“服务器选项”选项卡中,为连接服务器设置适当的选项,如超时设置等。
7. 在“测试连接”选项卡中,可以测试连接是否成功。
如果连接失败,请检查Oracle数据库的配置和网络设置。
8.单击“确定”按钮来创建连接服务器。
现在,可以在SQL Server上使用连接服务器来访问Oracle数据库中的数据了。
示例代码:```-- 查询Oracle数据库中的数据SELECT*FROM[LinkedServerName].[OracleDatabaseName].[SchemaName].[TableName] -- 插入数据到Oracle数据库INSERT INTO[LinkedServerName].[OracleDatabaseName].[SchemaName].[TableName] (column1, column2, column3)VALUES (value1, value2, value3)-- 更新Oracle数据库中的数据UPDATE[LinkedServerName].[OracleDatabaseName].[SchemaName].[TableName] SET column1 = value1WHERE condition-- 删除Oracle数据库中的数据DELETE FROM[LinkedServerName].[OracleDatabaseName].[SchemaName].[TableName] WHERE condition```需要注意的是,连接Oracle数据库需要确保SQL Server环境中已安装Oracle客户端软件,并且配置正确。
通过ORACLE通用连接访问SQLServer数据库的方法

通过ORACLE通用连接访问SQLServer数据库的方法要通过Oracle通用连接访问SQL Server数据库,需要使用Oracle 的适配器来连接到SQL Server数据库。
以下是通过Oracle通用连接访问SQL Server数据库的方法:1. 安装并配置Oracle通用连接适配器:- 在Oracle数据库服务器上找到适配器的安装目录。
HS_FDS_CONNECT_INFO = server_nameHS_FDS_TRACE_LEVEL = offHS_FDS_SHAREABLE_NAME = /usr/local/bin/libodbc.so其中server_name是SQL Server数据库的主机名。
SID_LIST_LISTENER=(SID_LIST=(SID_DESC=(SID_NAME = odbc)(ORACLE_HOME = /path/to/oracle_home)(PROGRAM = dg4odbc)其中/oracle_home是Oracle数据库的安装目录。
2.配置ODBC数据源:- 在Oracle数据库服务器上安装必要的ODBC驱动程序以连接到SQL Server数据库。
- 在ODBC数据源管理器中配置一个ODBC数据源,以便Oracle数据库可以通过该数据源连接到SQL Server数据库。
- 确保ODBC数据源名称与initodbc.ora文件中的server_name匹配。
3.创建数据库链接对象:- 在Oracle数据库服务器上创建一个数据库链接对象,该对象将用于连接到SQL Server数据库。
-使用CREATEDATABASELINK语句创建数据库链接对象,语法如下:CREATE DATABASE LINK link_nameCONNECT TO username IDENTIFIED BY passwordUSING 'data_source_name';其中link_name是链接名,username是在SQL Server数据库中的用户名,password是对应的密码,data_source_name是ODBC数据源的名称。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SQL SERVER 2005 通过链接服务器访问 ORACLE 的快速设定方法1)在SQL_SERVER 2005服务器上安装Oracle 10g的客户端。
假设安装到D:\oracle\ 目录。
如果D:是N TFS分区,需要将ORACLE安装后的目录设为所使用的用户有权可运行、可添加、可删除。
2)配置D:\oracle\product\10.2.0\client_1\NETWORK\ADMIN\tnsnames.ora 文件(手动配置)ORCL_192.168.0.163=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.0.163)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME =orl)//此处的orl是HIS给的database))(NetManage工具自动生成的配置)ORCL_192.168.0.163 =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.163)(PORT = 1521)))(CONNECT_DATA =(SID = orl)//此处的orl是HIS给的database(SERVER = DEDICATED)))3)在DOS模式下运行以下命令以便确认ORA CLE客户端安装无误。
sqlplus user/password@ ORCL_192.168.0.1634)打开开始-控制面板-服务,确认Distributed Transaction Coordinator服务已启动。
5)打开SQL SERVER Management Studio,实例名称(ORCL_192.168.0.163)-服务器对象(右键)-新建连接服务器。
a)链接服务器:写上链接服务器的名字,如:OraTestb) 服务器类型,选择其他数据源c) 访问接口:选择 Microsoft OLE DB Provider for Oracled) 产品名称:写上 Oraclee) 数据源:写上tnsnames.ora 文件中配置的服务名,如:ORCL_192.168.0.163f)访问接口字符串:user id=user;password= passwordg)在选择安全性选项页,使用此安装上下文建立连接:1:远程登录:user2:使用密码:passwordh) 确定6)SQL的写法有两种a) 使用T-SQL语法:SELECT * FROM OraTest.ERP.BAS_ITEM_CLASS注意在,SQL查询分析器中输入SQL语句时注意中文的全角半角切换方式!b) 使用PLSQL语法:SELECT * FROM openquery(OraTest,'SELECT * FROM OraTest.ERP.BAS_ITEM_CLASS ')c)第二种访问方式比第一种约快50%;第二种访问方式跟直连ORACLE的速度相当;第一种访问方式可能会导致一些意外错误,如:该表不存在,或者当前用户没有访问该表的权限等等一些信息。
d)如果需要访问的column中使用没有精度的数据类型,这两种查询方式都可能会报错,这是ORACLE 的BUG,无法修正,只能通过查询语句的特殊处理规避这一问题:OLE DB 提供程序 'OraOLEDB.Oracle' 为列提供的元数据不一致。
执行时更改了元数据信息。
SQL SERVER 2000 通过链接服务器访问 ORACLE 的快速设定方法1)在SQL_SERVER 2000服务器上安装Oracle 10g的客户端。
假设安装到D:\oracle\ 目录。
如果D:是N TFS分区,需要将ORACLE安装后的目录设为所使用的用户有权可运行、可添加、可删除。
2)配置D:\oracle\product\10.2.0\client_1\NETWORK\ADMIN\tnsnames.ora 文件(手动配置)ORCL_192.168.0.163=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.0.163)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME =orl)//此处的orl是HIS给的database))(NetManage工具自动生成的配置)ORCL_192.168.0.163 =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.163)(PORT = 1521)))(CONNECT_DATA =(SID = orl)//此处的orl是HIS给的database(SERVER = DEDICATED)))3)在DOS模式下运行以下命令以便确认ORA CLE客户端安装无误。
sqlplus user/password@OraLink4)打开开始-控制面板-服务,确认Distributed Transaction Coordinator服务已启动。
5)打开SQL SERVER 企业管理器,实例名称(ORCL_192.168.0.163)-服务器对象(右键)-新建连接服务器。
(如上图)a)链接服务器:写上链接服务器的名字,如:OraTestb) 服务器类型,选择其他数据源c) 访问接口:选择 Microsoft OLE DB Provider for Oracled) 产品名称:写上 Oraclee) 数据源:写上tnsnames.ora 文件中配置的服务名,如:ORCL_192.168.0.163f)访问接口字符串:user id=user;password= passwordg)在选择安全性选项页,使用此安装上下文建立连接:1:远程登录:user2:使用密码:passwordh) 确定6)SQL的写法有两种a) 使用T-SQL语法:SELECT * FROM OraTest.ERP.BAS_ITEM_CLASS注意在,SQL查询分析器中输入SQL语句时注意中文的全角半角切换方式!b) 使用PLSQL语法:SELECT * FROM openquery(OraTest,'SELECT * FROM OraTest.ERP.BAS_ITEM_CLASS ')c)第二种访问方式比第一种约快50%;第二种访问方式跟直连ORACLE的速度相当;第一种访问方式可能会导致一些意外错误,如:该表不存在,或者当前用户没有访问该表的权限等等一些信息。
d)如果需要访问的column中使用没有精度的数据类型,这两种查询方式都可能会报错,这是ORACLE 的BUG,无法修正,只能通过查询语句的特殊处理规避这一问题:OLE DB 提供程序 'OraOLEDB.Oracle' 为列提供的元数据不一致。
执行时更改了元数据信息。
使用 Oracle 透明网关从oracle 端连Sql Server 数据库一.使用 Oracle 透明网关从oracle 端连Sql Server 数据库Step1 安装oracle 透明网关Condition: 连Sql server 的网关的操作系统必须是window ,因为在网关上还必须得装一个sql sever 的客户端,用于监听sql server 服务器发来的消息。
安装透明网关组件的软件在oracle 安装盘里面,不需要另行下载。
安装方法与步骤:1.启动安装程序以后,选择安装类型为定制2.选择 oracle transparent gateways for Miscrosoft Sql Server ,然后点击下一步,装完即可。
Step 2 安装sql server 客户端(这一步不再演示)Step 3 配置透明网关与Oracle 服务器1. 修改ORACLE_HOME\tg4msql\admin下的inittg4msql.ora 文件,配置好参数其中HS_FDS_CONNECT_INFO=jysc.msdb的jisc代表sql server 的服务名,msdb是需要连接的数据库。
2 配置oracle 服务器的listener修改listener.ora 文件,添加以下参数,作用是使监听器能够监听网关发过来的信息(SID_DESC =(PROGRAM = tg4msql)(ORACLE_HOME = D:\OraHome_1)(SID_NAME = tg4msql))其中SID_NAME 可以自己取名。
3 配置网络服务名tnsnameLKSQL =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = xuchunyang)(PORT = 1521)))(CONNECT_DATA =(SID = tg4msql))(HS = OK))这里的HOST=xuchunyang ,xuchunyang 是透明网关服务器的服务器名,也可以是主机IP 地址,(SID = tg4msql) 的tg4msql不是固定名,需跟上面listener SID_NAME 一致。
一切配置都已经完毕,然后可以创建database link 去连接sql server 数据库了Step 4 创建database link连上oracle 数据库,运行下面的语句,创建database linkcreate database link LKTOSQLconnect to XuChunYang identified by garyxu0120using 'LKSQL';这里 using 'LKSQL'的LKSQL 是网络服务名,跟开始配置的tns name 一致。
现在,我们就可以使用database link 去访问sql server 数据库的数据了。
例如,运行Select * from sysobjects@LKTOSQL where rownum <10建立好链接后,使用trigger 可以使两种不同数据库之间的表数据同步。
二使用Sql Server 链接服务器从Sql server 连oracle 数据库1.要求pc机上安装oralce客户端软件和sqlserver软件。
2.客户端的配置tnsnames.ora文件,配置所要连接的数据库服务器(windows,unix等平台均可以)GARYXU =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.67)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = GARY)))3.配置windows的ODBC数据源:开始菜单—》设置—》管理工具—》数据源(ODBC)—》进入配置用户DSN或者系统DSN均可以:添加—》选择Microsoft ODBC for oracle ——》自定义数据源名称(最好跟tns中连接串同名!)—》服务器名称(必填!填写tns文件中的连接串名称)—》完成。