sqlserver垮库查询_Oracle和SQLServer中实现跨库查询
一、在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名。
例如:
create public database link DBLINK
connect to username identified by mypassword
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.28)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ftnemr)
)
)';
创建完后,我们也就可以访问了:“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,然后查询的方式与前面一至。
sqlserver垮库查询_Oracle和SQLServer中实现跨库查询相关推荐
- 微服务改造中解决跨库问题的思路
今年一直在和团队做微服务的架构改造(相关的一些详情,有兴趣的朋友,可以参见之前的这篇分享).但是做过改造的朋友都知道 从"All-In-One" 到 "Micro-Ser ...
- MySQL源码学习:MySQL中禁止跨库访问的实现
摘要: 先说一下这里"跨库"的意思:当前use的是db1, 仍可以使用select * from db2.table1来访问table1表. 这样使得我们需要访问同一个MySQL ...
- 2021年朔州市副高考试成绩查询,2021朔州市第二中学校教师成绩查询入口:http://www.shuozhou.gov.cn/ztjs/rlzy/rsks/...
2021朔州市第二中学校教师成绩查询成绩查询网址为:朔州市人力资源和社会保障局网站人事考试专栏(http://www.shuozhou.gov.cn/ztjs/rlzy/rsks/).忻州教师招聘网为 ...
- mysql怎么子查询_在mysql中如何进行子查询?
在mysql中,子查询是指将一个查询语句嵌套在另一个查询语句中,可以在SELECT.UPDATE和 DELETE语句中配合WHERE子句进行实现,WHERE子句中语法格式为"WHERE (另 ...
- apex 查询_在 Apex 中使用合并统计查询
SOQL 中的合并统计查询 在 SOQL 中,我们可以使用一系列函数来进行合并统计查询.它们的功能和标准 SQL 中的 SUM(),COUNT() 等函数类似. Apex 中使用合并统计查询 在 Ap ...
- axios库读不到cookie_axios中cookie跨域及相关配置示例详解
自从入了vue之后,一直在用axios这个库来做一些异步请求,下面这篇文章主要介绍关于axios中cookie跨域及相关配置的资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴. 前言 最近 ...
- java条件查询excel_[转]EXCEL中的多条件查询(整理)
在EXCEL里面有多个方法可以完成多条件查询,先来了解合并数组这个概念: 如果Sheet2是这样的: A ,B ,C 张三,一月,90 张三,二月,85 张三,三月,95 那么If({1,0},She ...
- java导出jar带第三方库_在.jar文件中导出java库
我仍然是 java的新手,我对导出.jar文件非常新.我有一个小游戏,我想发送给一些朋友,我被告知在另一个问题,我应该将它导出到一个可执行的jar文件.好吧,我终于在我的计算机上工作了但是当我把它发送 ...
- python中的numpy库有什么优缺点_python中关于numpy库的介绍
1.Numpy是什么? NumPy(Numerical Python的缩写)是一个开源的Python科学计算库.使用NumPy,就可以很自然地使用数组和矩阵. NumPy包含很多实用的数学函数,涵盖线 ...
最新文章
- Splay ---- 区间翻转 区间最大值 区间加 P4146 序列终结者
- java 点与线的距离_计算地图上点与线段距离
- 获取apk的package name 和 Activity
- hibernate07--关联映射
- golang 请求带验证信息的坑
- 计算机程序和系统股票走势分析,证券走势指标匹配分析系统的设计与实现
- ftp文档服务器设置,ftp服务器基本设置
- Flex 中 12 个简单实用的小技巧
- fedora 16 下搭建gvim+xdebug调试环境
- mysql 最近_关于mysql查询最近一条记录
- linux发行版衍生关系,linux发行版-Ubuntu的衍生版本UbuntuKylin初体验(伪)
- Django Form ModelForm modelfromset
- 研究生怎么看 ,怎么写论文
- Linux环境下实现简易的DNS域名解析过程
- modbus调试工具开发(1)--windows下编译libmodbus库文件
- Java编程必备软件
- asp.net1002-公司人事管理信息系统#毕业设计
- latex表格横向、纵向合并问题
- 【牛客网-公司真题-前端入门篇】——小米秋招笔试-前端
- 涉及到第三方支付接口该如何测试?