Oracle 数据访问组件 (ODAC) 全称:Oracle Data Access Components
背景:
最近项目里面有用到 WCF+Entity Framework+oracle 这个架构
用过的朋友应该都知道,Entity Framework要通过ODAC的方式来连接Oracle,
于是从oracle下载了一个ODAC64bit版本,结果VS2010怎么都无法调用到ODAC这玩意,
于是暂时远端到服务器上来开发项目,当时被这个问题郁闷了好久……
项目结束后,公司要求切换服务器,于是就需要在新的服务器(Window server2008)上搭建环境,
结果又悲催的卡在的ODAC的问题上,这次再也没有其它替代解决方案了,后来跟一个资深同事(以前成功安装过ODAC)
一起花了两天时间来研究这个,把旧服务器上的配置环境全部在新的服务器上搭建起来,并一个一个对比
新旧服务器上ODAC相关配置差异,后来终于发现旧服务器(Window server2008)上ODAC居然
是32bit的,我擦,终于找到原因了,64bit系统安装32bit版本ODAC后VS2010上的Entity Framework才能通过ODAC正常抓取oracle中的数据,
真不知道是VS2010坑爹还是Oracle的ODAC坑爹……
最后强调:
64bit系统安装ODAC一定要安装32bit版本(即oracle 11g Client 为32bit的),否则会出现ODAC无法使用状况。
windows7 64位 oracle 64位 odac 64位 如何连接!
在如题的环境中,要怎么配置才能连接上oracle的库啊?现在的情况是open连接的时候,就停着不动了。谢谢
------解决方案--------------------
配置服务器tnsnames,使用SQLPLUS测试连接。
1. ODAC的安装
服务器端:0racle10g,11g 都行
客户端:oracle11g,我下载的是ODAC 11.2 Release 4 and Oracle Developer Tools for Visual Studio (11.2.0.3.0),oracle10g可以安装,但是里面缺少自定义类型的对应对象,且只支持vs2003和vs2005,所以我选择用的是oracle11g的版本ODAC 11.2 Release 4 and Oracle Developer Tools for Visual Studio (11.2.0.3.0)
2. 环境变量的设置
(1)新建ORACLE_HOME:ODAC的安装目录(类似~app\Administrator\product\ .1.0\client_1,我这里的安装目录是E:\app\ljp\product\11.2.0\client_2)
(2)新建LD_LIBRARY_PATH :%ORACLE_HOME%
(3)新建TNS_ADMIN : %ORACLE_HOME%(这里是监听设置,应该是tnsnames.ora的目录,我设置的是E:\oracle\product\10.1.0\db_1\NETWORK\ADMIN,当然也可以将配置好的tnsnames.ora文件拷贝到%ORACLE_HOME%目录下)
(4)在PATH的最前面追加:%ORACLE_HOME%
3.vs2008中建立与oracle的连接
在vs的菜单栏中点击视图—>服务器资源管理器,在服务器资源管理器面板中选择数据连接,右键添加连接
点击数据源的更改按钮,在弹出的更改数据源框中选择Oracle数据库,数据提供程序,选择Oracle Date Provider for.NET,如图所示:
在数据源名称的下拉列表框中选择数据源名称,这个的名称都是在tnsnames.ora配置好的,输入用户名密码,点击确定即可建立vs与oracle的连接
最后可以使用这里的工具对oracle数据库进行操作