继上一次mysql同步sql server后,这一次需要将Oracle同步到sql server上来,方案相似,只是在sql server链接oracle的时候费了很多时间。

一、测试环境

本方案实现的测试环境如表3-1所示。由于需要在 mssql上进行反复操作和测试,本次使用的mssql为本机上的,非远程。

表 31模拟测试环境

名称

版本

备注

操作系统

Win7(x64)

 

Microsoft SQL Server

2008

 

Oracle客户端

11gR2(x86)

 

Oracle服务端

-

 

PLSQL Developer

8.03(x86)

 

ODAC

112040Xcopy_64bit

 

二、主要流程

1.驱动程序的安装

如果用32操作系统,会有系统自带的Microsoft OLE DB Provider for Oracle驱动,因此不需要安装驱动程序,但如果使用的是64位系统,那么这个驱动是没有的,并且微软也不提供这个驱动的64位版本,因此,此时只能使用Oracle提供的Oracle Provider for OLE DB这个驱动,即ODAC。

ODAC安装和卸载方法:

(1)打开CMD,进入当前目录

如:CD D:\Documents\Desktop\ODAC112040Xcopy_64bit

(2)执行安装命令

如输入:install.bat all D:\OracleClient ODAC

第一个参数:all。all代表安装ODAC112040Xcopy_64bit文件夹下所有的组件和客户端。如果你不需要这么多组件,只用到其中一个,比如只用到了OLE DB组件,就可以像下面这样只安装客户端和这一个OLE DB组件:

install.bat oledb D:\OracleClient ODAC

第二个参数:D:\OracleClient。这是安装路径,根据自己的实际情况指定,路径中尽量不要有空格和圆括号。

第三个参数:ODAC。这个叫ORACLE HOME NAME,这个参数也可以自己随便指定一个字符串,不一定非得是"ODAC"。这个参数是用来写入注册表的。比如,上面这条语句执行后,会在注册表的以下位置写入:

HKLM\Software\Oracle\KEY_ODAC

这"KEY_"后面的ODAC就是你在参数中传入的那个"ODAC"

第四个参数。一般只用前三个参数就够了,在安装组件的时候会自动把它依赖的组件都安装上,但如果你只想安装指定的组件,不想装它所依赖的组件,这时才会用到第四个参数。比如:当你安装asp.net时,如果只用前三个参数,会自动把它所依赖的odp.net20和instantclient_11_2也安装上,但如果你再传入第四个参数"false",如下:install.bat asp.net D:\OracleClient ODAC false这时就只会安装asp.net,而不会把odp.net20和instantclient_11_2也装上。

(3)设置环境变量

ORACLE_HOME=D:\OracleClient

(添加一个环境变量ORACLE_HOME,其值为你的安装路径,比如我这里就是D:\OracleClient)

PATH=%ORACLE_HOME%;%ORACLE_HOME%\bin;

(在PATH环境变量中添加下面两个路径,用分号隔开:%ORACLE_HOME%;%ORACLE_HOME%\bin;)

(4)卸载ODAC的方法

用cmd进入到ODAC的安装路径下,然后运行该路径下的uninstall.bat批处理文件。这里也是要注意参数的运用。

若要卸载掉所有组件,可以这样:

uninstall.bat all ODAC或者uninstall.bat all D:\OracleClient

若要卸载掉某一个指定的组件,可以这样:

uninstall.bat oledb ODAC或者uninstall.bat oledb D:\OracleClient

2.Mssql链接Oracle方法

方法一:图形界面操作

在mssql链接服务器上右键,新建链接服务器,在弹出的对话框中填写正确的参数,如下图所示:

图 31新建链接服务器常规设置

下面是各参数的含义及填写方法:

【链接服务器名称】自定义,SQL查询语句中会使用到它

【访问接口】Oracle Provider for OLEDB,ODAC方式,如果驱动没安装好,x64位系统没有此选择项。

【产品名称】固定值,Oracle

【.登陆名称和密码】即Oracle的登陆名和密码,必填。

图 32新建链接服务器安全性设置

方法二:SQL代码操作

新建SQL查询窗口,输入并修改以下代码,执行。

--第一步,创建链接服务器

EXEC sp_addlinkedserver

@server =N'MyOracle', --链接服务器别名,自定义,后面SQL语句中会使用

@srvproduct=N'Oracle', --产品名称,固定值

@provider=N'OraOLEDB.Oracle', --驱动名称,一般为OraOLEDB.Oracle和MSDASQL,64位系统下只能是OraOLEDB.Oracle

@datasrc=N'192.168.1.60/orcl' --数据源tnsnames.ora中查看

--第二步,登陆链接服务器

EXEC sp_addlinkedsrvlogin

'MyOracle', --已建立的链接服务器名

false, -- 固定

NULL, --每个登陆SQL SERVER的用户使用此链接服务器,如sa

'****', --帐号(oracle)

'****' --密码(oracle)

-- 第三步,查询以测试链接

SELECT * FROM OPENQUERY(MyOracle, 'select * from ZQCZ.CATALOGR')

  

图 33 Mssql链接Oracle结果

Win7 64位下sql server链接oracle的方法的更多相关文章

  1. win7(64)位下WinDbg64调试VMware10下的win7(32位)

    win7(64)位下WinDbg64调试VMware10下的win7(32位) 一 Windbg32位还是64位的选择 参考文档<Windbg 32位版本和64位版本的选择> http:/ ...

  2. 偶然碰到的Win7 64位下CHM 的问题解决

    最近下了几个沪江资料,都是chm格式的,但是在win7 64位下,都显示不了里面的音频和视频flash之类的控件,虽然可以通过源文件的方式打开视频文件,但是很麻烦.    网上似乎碰到的人也不是很多, ...

  3. win7 64位下如何安装配置mysql-5.7.4-m14-winx64

    win7 64位下如何安装配置mysql-5.7.4-m14-winx641. mysql-5.7.4-m14-winx64.zip下载 官方网站下载地址:http://dev.mysql.com/g ...

  4. [转]win7 64位下完美安装64位oracle 11g

    最近在网上搜如何在win764位的情况下安装64位的oracle,并且使用PLSQL Developer来管理oracle. 于是开始在oracle官网下载数据库,下载是一件很简单的事情,问题是在百度 ...

  5. [转]win7 64位下android开发环境的搭建

    本文转自:http://www.cfanz.cn/index.php?c=article&a=read&id=65289 最近换了新电脑,装了win7 64位系统,安装了各种开发环境, ...

  6. win7 64位下android开发环境的搭建

    本文转自:http://www.cfanz.cn/index.php?c=article&a=read&id=65289 最近换了新电脑,装了win7 64位系统,安装了各种开发环境, ...

  7. Win7 64位下配置Qt5.3和Wincap

         最近在学网络编程,想在windows下用Qt做个网络抓包工具,就要用到WinPcap,而我的电脑的系统是Win7 64位,qt版本是Qt 5.3.1 for Windows 64-bit ( ...

  8. 【转】 VC++6.0 在Win7 64位下调试,Shift+F5无法退出

    Win7 64位VC++6.0调试代码无法关闭窗口解决方法 VC++6.0 在64位Windows7下调试的时候,再结束调试,程序无法退出,只能关闭VC++6.0 IDE环境. 问题描述:当我击F5开 ...

  9. 关于Win7 64位下:Navicat无法连接64位Oracle 11gR2:Cannot load OCI DLL解决方法

    错误描述 在Win7下安装了Oracle 11g R2,在用Navicat去连接Oracle时,提示以下错误: Cannot load OCI DLL, 126: Instant Client pac ...

随机推荐

  1. Unix sed实用教程开篇

    已经看了一段时间的Linux Shell编程了,也能完成一些基本的使用,为了加深理解,恰好看到了The Unix School的一个sed&awk教程,不是简单的命令参数堆积,而是一个相当实用 ...

  2. SVN分支与合并

    分支的基本概念就正如它的名字,开发的一条线独立于另一条线,如果回顾历史,可以发现两条线分享共同的历史,一个分支总是从一个备份开始的,从那里开始,发展自己独有的历史(如下图所示) ⑴创建分支 假设目前我 ...

  3. Fireasy新版本发布

    1.5.40.42028  2015-2-4 ** Fireasy.Common 1.DynamicBuilder新增使用表达式SetCustomAttribute的重载方法 2.DateTimeEx ...

  4. 关于导出Excel

    Asp.Net 在刚毕业那会,做项目全是服务器控件.导出Excel的代码也很简单,在button触发后台事件后,后台生成一个excel文件,然后读取成字节,输出到客户端. Response.AddHe ...

  5. 【问题与思考】1+"1"=?

    概述 在数学中1+1=2,在程序中1+1=2,而1+"1"=? 围绕着1+"1"的问题,我们来思考下这个问题. 目录: 一.在.Net代码中 二.在JavaSc ...

  6. http协议客户端向服务器端请求时一般需要发送的内容

    out.println("GET /shopping/index.html HTTP/1.1");//请求行 包括请求方式,文件路径, http协议版本(必写)请求头.... ou ...

  7. java模拟一个简单的QQ

    v 项目源码 https://github.com/hjzgg/java_QQ v 标题效果       package testFour; import java.awt.Color; import ...

  8. Network - 工具列表

    Tcpdump homepage - tcpdump wiki - tcpdump Wireshark homepage - wireshark wiki - wireshark Fiddler ho ...

  9. Dictionary序列化和反序列化

    public class SerializeHelper { public static string XmlSerialize(List<CustomSearchEntity> obj) ...

  10. flex布局浅谈和实例

    阿基米德曾说给我一个支点我可以撬动地球,而拥有flex基本可以撬动所有的布局. 1.flex布局基本介绍及效果展示 工欲善其事必先利其器,来来来,一起看下基础知识先(呵~,老掉牙,但是有用啊). ** ...