图片 5

MSSQL->serverlink[Oracle]

Posted by

 

  1. SELECT * FROM OPENQUERY(LINKED_NAME,’SELECT * FROM TABLE_NAME’); 

    

创建Linked Server

结合上面的实例,假如要查询system
用户下jobs 表的内容,则相应SQL 语句应为: 

   

打开SQL Server Management Studio
进入服务器对象 列表,右键链接服务器,点击”新建链接服务器…”

       图片 1

 

 (DESCRIPTION =  

需求描述:

接下来就可以在SQL Server 端访问Oracle
数据库了,查询语法如下:

    举例:

图片 2

                 首先图形界面创建链接数据库别名

  1. 确保主机可以通过SQLPlus 访问远程Oracle
    数据库。
--创建链接别名
exec master.dbo.sp_addlinkedserver
@server = 'Oraclelink',--指定链接数据库的别名
@srvproduct = 'oracle',--链接对象数据库的产品
@provider = 'OraOLEDB.Oracle',--驱动器
@datasrc = 'HMDB0'--要访问的服务器,oracle需提供tnsnames.ora配置的别名
go


--登录链接数据库
exec master.dbo.sp_addlinkedsrvlogin
@rmtsrvname = 'Oraclelink',--指定需登录的数据库链接别名
@locallogin = NULL,--本地服务器的登录名,直接访问Windows Server组成员
@useself = 'false',--关闭本地登录,true值使用本地账户认证,会忽略rmtuser和rmtpassword参数
@rmtuser = 'dbmonitor',--登录数据库用户名
@rmtpassword = 'xxxxxx'--登录密码
go

--查询oracle数据库测试
--数据库的格式必须是 链接别名..ORACLE用户名.表名
select * from Oraclelink..DBMONITOR.UNIQUE_T;
go


--查看当前所有链接列表
exec sp_linkedservers


--删除linked server
Exec sp_droplinkedsrvlogin Oraclelink,NULL --删除链接服务器的登陆帐户
Exec sp_dropserver Oraclelink --删除链接数据库别名

完成后链接服务器中会看到刚创建的Oracle
数据库链接。

    必须在SQL
Server数据库主机安装Oracle客户端(ODBC驱动),并配置tnsnames.ora

准备工作

    Oracle数据库,Oracle 12.2.0.1.0

链接服务器: 自定义填写名称

          
     图片 3

ORADB =  

    linked
server方式,主要是采用sp函数包进行配置和连接Oracle数据库(其他数据库也同样适用)

  1. SELECT * FROM OPENQUERY(ORASVR,’SELECT * FROM JOBS’); 

    SQL Server数据库连接Oracle数据库

 

                
OPENQUERY

图片 4

                    测试成功

  1. 连接方法

    通过SQL server 的
    linkedserver的功能连接

  2. 实际操作

                      语法: OPENQUERY ( linked_server ,’query’ )

事先在需要访问Oracle
数据库的主机上完成以下工作:

    Oracle客户端,Oracle 11g Client或Oracle 12c Client

访问Oracle

连接方式

按照OPENQUERY 的语法上面SQL
语句应变为: 

条件准备:

图片 5

 

使用上述方法进行数据查询时,若Oracle
表有NUMBER 列时会出现转化错误,这时可以将NUMBER
类型转化为字符串(也有将该列属性修改成NUMBER(10),为NUMBER
列设定好位数)。考虑到View
查询等因素个人感觉还是转为字符串的方式较为通用。 

当然如果查询的列过多,每个NUMBER
列都转为VARCHAR
的话工作量也的确不小,这时最好的方法就是使用OPENQUERY 函数: 

 

点击安全性
,点选”使用此安全上下文建立连接”,假设Oracle
数据库有一个名称为system的用户ID,在”远程登录”中输入访问帐号,点击”确定”结束创建。

 

这样我们就可以在SQL Server
端方便的访问Oracle 数据库,并做相应的数据调整。 

相关文章

Leave a Reply

电子邮件地址不会被公开。 必填项已用*标注