Oracle通过ODBC连接SQL Server数据库

前言

近期在项目中客户软件升级,旧版本的数据库用的SQL Server而新版本换为了Oracle,其中部分数据需要进来平移,这样我们就需要配置Oracle连接SQL数据库,这篇我们就来看一下Oracle怎么用ODBC的方式来连接SQL Server数据库。

操作步骤

  1. 在Oracle服务品上创建SQL的ODBC数据源

  2. 检查Oracle中的DG4ODBC驱动是否已经安装

  3. 配置Oracle中HS的initdbodbc.ora

  4. 配置Oracle中的监听Listener(服务端透明网关监听)

  5. 重启Oracle的监听服务

  6. 通过语句来创建Oracle的DBLink连接到SQL

  7. 实现访问测试

分步实现

环境说明

Oracle服务器

版本:Oracle11g

系统:Windows Server2012R2 (64位)

IP地址:192.168.66.201

Oracle通过ODBC连接SQL Server数据库_第1张图片

SQL服务器

版本:SQL SERVER 2008 R2

系统:Windows 10 HOME (64位)

IP地址:192.168.66.249

Oracle通过ODBC连接SQL Server数据库_第2张图片


第一步:在Oracle服务品上创建SQL的ODBC数据源

在Oracle所在的电脑上进行ODBC数据源的配置,ODBC数据源分为64位和32位,如果不清楚应该是64位和32位的话,建议都配置上,名字可以是一样的,所以不用担心后面的连接问题。我们先以64位为例,32位可以照这个流程再做一遍即可。

1.右键点击开始菜单选择搜索,然后输入ODBC。

Oracle通过ODBC连接SQL Server数据库_第3张图片

Oracle通过ODBC连接SQL Server数据库_第4张图片

2.在ODBC数据源中选择系统DSN---添加---SQL Server---完成。

Oracle通过ODBC连接SQL Server数据库_第5张图片

Oracle通过ODBC连接SQL Server数据库_第6张图片

3.在创建到SQL SERVER的新数据源中输入名称和SQL的服务器,点击下一步。

Oracle通过ODBC连接SQL Server数据库_第7张图片

4.选择SQL的登陆方式及输入登陆SQL的SA用户及密码,再点击下一步。

Oracle通过ODBC连接SQL Server数据库_第8张图片

注:我在点击下一步的时候弹出下图的提示,并且点击运行PING了一下我的SQL的服务器,发现PING不通,原来是我的WIN10系统开了防火墙了,把WIN10的防火墙关掉后问题解决。

Oracle通过ODBC连接SQL Server数据库_第9张图片

Oracle通过ODBC连接SQL Server数据库_第10张图片

关掉防火墙后,已经PING通,然后我们接着重新点下一步即可。更

Oracle通过ODBC连接SQL Server数据库_第11张图片

5.更改默认要连接的数据库(改为我们要用到的数据库即可),然后点击下一步。

Oracle通过ODBC连接SQL Server数据库_第12张图片

6.按下面的配置直接点击完成即可。

Oracle通过ODBC连接SQL Server数据库_第13张图片

7.弹出完成的提示框,我们下图测试一下数据源,返回测试成功,点击关闭,这样ODBC的数据源就配置完成了,在系统DSN下面可以看到一个vaccaesql的64位的数据源出现。

Oracle通过ODBC连接SQL Server数据库_第14张图片

Oracle通过ODBC连接SQL Server数据库_第15张图片

Oracle通过ODBC连接SQL Server数据库_第16张图片


第二步:检查Oracle中的DG4ODBC驱动是否已经安装

鼠标左右点击开始--运行--输入cmd--回车,打开命令提示行,然后输入db4odbc或是hsodbc,看看是否已经安装驱动。(如果没有安装,需自行下载安装,此处不介绍具体操作)

Oracle通过ODBC连接SQL Server数据库_第17张图片


第三步:配置Oracle中HS的initdbodbc.ora

1.找到Oracle服务端的HS下Admin的文件夹,在里面看到initdg4odbc.ora的文件,然后复制、粘贴一个新的文件出来改名为initodbc_sql.ora

Oracle通过ODBC连接SQL Server数据库_第18张图片

Oracle通过ODBC连接SQL Server数据库_第19张图片

2.打开initodbc_sql.ora文件并按下图进行配置。

Oracle通过ODBC连接SQL Server数据库_第20张图片

注:每个使用DG4ODBC的实例,都必须单独一个"init*.ora"文件,文件命名规则:init+<网关sid>+.ora
HS_FDS_CONNECT_INFO = ODBC数据源管理中的DSN名称【本实验为testodbc】
HS_FDS_TRACE_LEVEL = OFF 【追踪级别参数,出于性能影响一般不配置或者配置为"OFF",若遇到网关问题需要跟踪日志,则配置为"Debug",跟踪日志文件存放在"ORACLE_HOME\hs\trace"目录下】


第四步:配置Oracle中的监听Listener(服务端透明网关监听)

找到Oracle服务端的NETWORK下Admin的文件夹,配置Listener.ora的文件。

Oracle通过ODBC连接SQL Server数据库_第21张图片

Oracle通过ODBC连接SQL Server数据库_第22张图片


第五步:重启Oracle的监听服务

在命令提示符窗口依次输入如下命令:

停止监听:lsnrctl stop

启动监听:lsnrctl start

一般停止监听没有问题,但是如果启动不了监听(启动监听服务失败),多半说明第四部字符串配置有错误,注意检查。

Oracle通过ODBC连接SQL Server数据库_第23张图片


第六步:通过语句来创建Oracle的DBLink连接到SQL

打开PL/SQL后输入下面的语句创建DBLink

create public database link test_sql connect to "sa" identified by "sumsoft" using '(description=
        (address= (protocol=tcp)(host=192.168.66.201)(port=1521))
        (connect_data=(SID=odbc_sql))
        (HS=OK)
)';

Oracle通过ODBC连接SQL Server数据库_第24张图片


第七步:实现访问测试

查询语句

select * from 表名/视图名@linkname

在SQL数据库中有一个tbspplxinxi的表,我们查询一下看看:

Oracle通过ODBC连接SQL Server数据库_第25张图片

然后我们通过PL/SQL在Oracle中进行查询SQL中这个表的数据。

Oracle通过ODBC连接SQL Server数据库_第26张图片

通过链接直接导入数据的写法。

注:上面的列名需要用“”引起来,否则会报错。


-END-

Vaccae的往期经典


OpenCV

《C++ OpenCV案例实战---卡号获取》

《C++ OpenCV案例实战---卡片截取(附代码)》

《C++ OpenCV透视变换---切换手机正面图片》

《C++ OpenCV实战---获取数量》

《C++ OpenCV实战---利用颜色分割获取数量》


Android

《Android利用SurfaceView结合科大讯飞修改语音实别UI》

《Android关于语音识别的功能实现分析(一)---结构化思维》

《Android关于语音识别的功能实现分析(二)---语义解析》

《Android根据类生成签名字符串》

《Android碎片化布局fragment的实战应用》


.Net C#

《C#自定义特性(Attribute)讲解与实际应用》

《C#根据类生成签名字符串(附DEMO下载地址)》

《C++创建动态库C#调用》

《C#与三菱PLC(型号FX2N)串口通讯类》


数据库及其它

《Oracel存储过程写报表实战》

《Delphi轮播视频和图片程序(用于双屏显示程序)》

《SQL随机增加销售数据的脚本编写(附脚本下载地址)》


长按下方二维码关注微卡智享

你可能感兴趣的:(数据库,linux,oracle,sql,centos)