跨库访问--Oracle和sqlserver

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情
from:http://blog.csdn.net/zjfstudio/article/details/4929941

一、在SQLServer中连接另一个SQLServer库数据

在SQL中,要想在本地库中查询另一个数据库中的数据表时,可以创建一个链接服务器:

EXEC master.dbo.sp_addlinkedserver @server = N'别名', @srvproduct=N'库名',@provider=N'SQLOLEDB', @datasrc=N'服务器地址'

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'别名', @locallogin = NULL , @useself= N'False', @rmtuser = N'用户名', @rmtpassword = N'密码'

创建完后,就可以通过“Select * from别名.库名.dbo.表名”来查询了。

或者也可以手工创建:


二、在Oracle中连接另一个Oracle库数据

在Oracle中,其实也类似,要连接到其他库时,也需要创建一个类似这样的连接:

create database link 别名  connect to 模式名(用户名) identified by "密码"  using 'TNS名';

注意:这里面的TNS名就是你需要连接的另一个库的TNS名,而且是必需是在你当前连接的库的服务器端所配置的TNS名。

创建完后,我们也就可以访问了:“Select * from表名@别名”

如果使用的是PL/SQL开发工具,那么我们也可以直接在工具里创建:



三、在SQL Server中连接Oracle数据

同样,也创建一个数据库连接即可,这时我们采用Ole DB方式连接数据库:

EXEC master.dbo.sp_addlinkedserver @server = N'别名', @srvproduct=N'库名',@provider=N'MSDAORA', @datasrc=N'TNS名'

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'别名', @locallogin = NULL , @useself= N'False', @rmtuser = N'模式名', @rmtpassword = N'密码'

注意:这里面的TNS名,是在该SQL Server器端所配置的TNS名,不是在客户端本地哦。

创建好了后,使用“select * from openquery(别名,'select * from   模式名.表名”来执行查询。

要连接到其他类型的数据库时,其实方式也类同,只要用相应的provider来连接即可。

 

四、在Oracle中连接SQL Server数据

在oracle中连接SQLServer也很类似,创建一个DBLink,但问题是,创建DBLink里,里面用的TNS名称都是连接到Oracle的,没有配置连接到SQL Server中的。

于是想到采用Oracle中的透明网关来实现,首先在Oracle的安装名中装上,Oracle Net Services和Oracle Transparent Gateways, 并在此项下选择Oracle Transparent Gateway for Microsoft SQL Server。

配置透明网关,编辑%ORACLE_HOME%/tg4msql/admin/init%ORACLE_SID%.ora, 该文件包含了TG for SQL Server的配置信息, 其中%ORACLE_SID%是给TG的"SID", 默认为tg4msql. 修改文件中的行HS_FDS_CONNECT_INFO="SERVER=SQL服务器地址;DATABASE=库名"。

然后创建监听器:编辑%ORACLE_HOME%/network/admin/listener.ora, 编辑对应listener的SID_LIST:

SID_LIST_LISTENER=
   (SID_LIST=
      (SID_DESC=
         (SID_NAME=%ORACLE_SID%)
         (ORACLE_HOME=oracle_home_directory)
         (PROGRAM=tg4msql)
      )
   )

其中%ORACLE_SID%为第二布中设置的SID, 默认值为tg4msql. 修改listener.ora文件后需重启listener使修改生效.

最后就可以配置TNS名了,如果直接修改Tnsname.ora文件的话,添加的格式是:

TNS名=
   (DESCRIPTION=
      (ADDRESS=(PROTOCOL=TCP)(HOST=sqlserver)(PORT=1521))
      (CONNECT_DATA=(SID=网关ID))
      (HS=OK))

这样,TNS名后就可以创建DB Links,然后查询的方式与前面一至


sql server 与 oracle 数据连接 测试环境搭建学习 技术点一: sql server 与 oracle 数据连接 问题出现: 用的是wind7 系统, 我需要用 sqlserver 远程连接 oracle 数据 第一步:下载 oracle 数据客户端,并配置好TNS信息 下载64位Oracle客户端 http://download.oracle.com/otn/nt/oracle11g/1120... 阅读详情

相关推荐

在 SQL Server 中连接 Oracle 数据访问数据

尽管 SQL Server 可以通过 Linked Server 与 Oracle 数据进行交互,但由于 SQL Server Oracle 使用不同的数据引擎,某些功能语法可能存在差异。通过 SQL Server 配置 Linked Server 连接到 Oracle 数据,可以方便地进行数据的数据访问。通过配置 Linked Server,你可以直接在 SQL Server 中运行查询访问 Oracle 数据中的表、视图或其他数据对象。完成配置后,测试 Oracle 数据的连接。

小蜗牛的珍贵百宝箱 3514

Oracle实现查询

场景模拟: 当前登录的是ocrla,然后我的需求是希望直接通过SQL能够查询到ocrlb的数据。 Oracle在进行访问时,可以通过创建dblink实现。 【第一步:用户权限】 查看当前用户是否拥有database link 权限 select * from user_sys_privs where privilege like upper('%DATABASE LINK%') AND USERNAME='ZHANGYU'; -- 如果user_sys_privs数据不多可以直接查找用户,注意这里

发现问题,面对问题,分析问题,解决问题,总结问题 1万+

oraclesqlserver 查询

包含网关包配置步骤等等,文件描述解析,安装配置及指引

Oracle&SQLServer中实现查询

Oracle&SQLServer中实现查询一、在SQLServer中连接另一个SQLServer数据在SQL中,要想在本地查询另一个数据中的数据表时,可以创建一个链接服务器:EXEC master.dbo.sp_addlinkedserver @server = N别名, @srvproduct=N名, @provider=NSQLOLEDB, @datasr

烈火青春 1万+

sqlserver与oralce之间的数据链接的创建

SQL Server连接SQL Server、SQL Server连接ORACLE 链接服务器 数据访问有很多种方式,其中部分用作接口访问,这里要介绍的是MSSQL访问另一台MSSQL,MSSQL访问ORACLE,其它暂不介绍。 1.MSSQL访问另一台MSSQL: a.展开服务器对象-->链接服务器-->右击"新建链接服务器" b.常规-->链接服务器:输入需要连接服

qq_38493940的博客 879

oracle dblink mssql,创建在SQLServerOracle的DBLINK

创建在SQLServerOracle的DBLINK类别:MsSql数据作者:码皇来源:lygzscnt12的专栏点击:dblink当我们要本地数据访问另外一个数据表中的数据时,本地数据中就必须要创建远程数据的dblink,通过dblink本地数据可以像访问本地数据一样访问远程数据表中的数据。一 如何创建Dblinkdblink当我们要本地数据访问另...

weixin_36268722的博客 622

OracleSQLServer中实现查询

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'别名', @locallogin = NULL , @useself= N'False', @rmtuser = N'模式名', @rmtpassword = N'密码'EXEC master.dbo.sp_addlinkedserver @server = N'别名', @srvproduct=N'名',@provider=N'MSDAORA', @datasrc=N'TNS名'

boy_10的博客 6665

amp sqlserver中 什么意思_Oracle&SQLServer中实现查询

一、在SQLServer中连接另一个SQLServer数据在SQL中,要想在本地查询另一个数据中的数据表时,可以创建一个链接服务器:EXECmaster.dbo.sp_addlinkedserver@server=N'别名',@srvproduct=N'名',@provider=N'SQLOLEDB',@datasrc=N'服务器地址'EXECmaster.dbo.sp_a...

weixin_42519497的博客 116

SQL Server连接SQL Server、SQL Server连接ORACLE 链接服务器

SQL Server连接SQL Server、SQL Server连接ORACLE 链接服务器 夸数据访问有很多种方式,其中部分用作接口访问,这里要介绍的是M...

小麦苗DBA宝典 604

使用透明网关实现oracle访问sqlserver

使用透明网关实现oracle访问sqlserver在项目上有访问异构数据的需求,通常是运行在oracle上的his系统,访问运行在sql server上的lis等系统,异构数据访问需要使用透明网关。以下介绍透明网关gateway的安装配置。

bigger王的博客 1783

sqlserver 链接 Oracle数据 (无废话 百分100%可用)

sqlserver链接Oracle百分百可以用,无废话

QQ10166005的博客 304

10g透明网关访问sqlserver

oracle的透明网关是oracle直接访问异构数据的利器。在9i中,透明网关是包含在数据安装程序中的,在安装数据软件过程中可以选择;10g中,oracle把透明网关独立出来,需要单独下载安装。 本文主要讨论在oracl...

cqu60618的博客 157

SQL SERVER 查询 Oracle

1创建链接服务器 使用openquery查询速度比较快 select * from (link_name,'query_string')query_string是oracle语法的查询语句。 2直接使用服务器名..架构名.表名方式查询,现在主要发现问题有。 1查询很慢。 2服务器名..架构名.表名必须都是大写,否则报错。 ...

yiyishuitian的专栏 961

sqlserver查询_OracleSQLServer中实现查询

一、在SQLServer中连接另一个SQLServer数据在SQL中,要想在本地查询另一个数据中的数据表时,可以创建一个链接服务器:EXECmaster.dbo.sp_addlinkedserver@server=N'别名',@srvproduct=N'名',@provider=N'SQLOLEDB',@datasrc=N'服务器地址'EXECmaster.dbo.sp_a...

weixin_26705191的博客 701

oracleSqlserver查询

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'别名', @locallogin = NULL , @useself= N'False', @rmtuser = N'模式名', @rmtpassword = N'密码'EXEC master.dbo.sp_addlinkedserver @server = N'别名', @srvproduct=N'名',@provider=N'MSDAORA', @datasrc=N'TNS名'

安潞的专栏 1379

sqlserver 连接 mysql_OracleSQLserver数据互建链接

日常经常会碰到数据与数据之间相互做连接来互相查询或者增删改数据的问题,同类型的数据之间是比较方便的,比如oracle就带有DBLINK的功能,可以很方便与同是oracle的数据做连接,但是不同类型数据之间的连接就比较麻烦一些,需要做很多设置才能生效,这里就简单的介绍一下oraclesqlserver之间的连接方式,供参考。1. 建立oraclesqlserver链接(采用通用链...

weixin_33501343的博客 772

Oracle/SQLServer 查询

Oracle SQL Server

Begin Again!~~~ 3107

sqlserver 查询 oracle 语法,Oracle/SQLServer 查询

一、SQL Server查询(一)查询本地SQL Server其他数据SELECT * FROM 数据名称.dbo.对象名称(二)查询其他数据1、创建链接服务器2、创建或更新 SQL Server 本地实例上的登录名与远程服务器中安全帐户之间的映射二、Oracle查询(一)查询其他Oracle数据1、创建数据链接语法:CREATE DATABASE LINK dblink_nam...

weixin_28771365的博客 2104
上一篇: 开窗函数——
下一篇: Oracle更新字段格式
lzpgala
博客等级 码龄9年 1粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值