Oracle Data Access Components (ODAC) for Windows Downloads
下载地址:http://www.oracle.com/technetwork/topics/dotnet/downloads/index.html
32-bit Oracle Data Access Components (ODAC)
with Oracle Developer Tools for Visual Studio
下载地址: http://www.oracle.com/technetwork/topics/dotnet/utilsoft-086879.html
总结:
在使用Oracle.DataAccess的过程中,遇到了一些问题,总结之。
1、首先确定服务器Oracle安装版本
2、确定客户端ODAC安装版本
3、如果机器上安装多个ODAC版本,使用PLSQL时,注意Oracle的主目录
4、32bit的ODAC没出现在GAC中,手动将其添加上。因为.net应用程序中配置了。(注意安装对应版本!)
<add assembly="Oracle.DataAccess, Version=2.112.3.0, Culture=neutral, PublicKeyToken=89B483F429C47342"/>
一、ODAC的安装
1、下载ODAC安装包
2. 解压缩
解压缩这个zip包,把里面的文件都解压到一个文件夹里,我是解压到D:ODAC112040Xcopy_64bit,然后打开cmd,进入到这个文件夹。
这个文件夹里有8个子文件夹,分别是:
instantclient_11_2:这是Oracle客户端,所有组件的运行都依赖于这个客户端;
oledb:这是OLE DB组件
asp.net:这是ASP.NET2组件
asp.net4:这是ASP.NET4组件
odp.net4:这是.NET4组件
odp.net20:这是.NET2组件
oramts:这是Oracle的MTS服务
network:这个文件夹不用管,它是用来存放tnsnames.ora文件的,要安装后才能用。
这里我们需要搞清楚这些组件之间的依赖关系。
instantclient_11_2是最基础的
oledb依赖于instantclient_11_2
asp.net依赖于instantclient_11_2和odp.net20
asp.net4依赖于instantclient_11_2和odp.net4
odp.net4依赖于instantclient_11_2
odp.net20依赖于instantclient_11_2
oramts依赖于instantclient_11_2
3. 安装ODAC包
在cmd中运行install.bat批处理文件:输入"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"。这个参数是用来写入注册表的。比如,上面这条语句执行后,会在注册表的以下位置写入:
HKLMSoftwareOracleKEY_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也装上。
4. 设置环境变量
ORACLE_HOME=D:OracleClient
(添加一个环境变量ORACLE_HOME,其值为你的安装路径,比如我这里就是D:OracleClient)
PATH=%ORACLE_HOME%;%ORACLE_HOME%in;(在PATH环境变量中添加下面两个路径,用分号隔开:%ORACLE_HOME%;%ORACLE_HOME%in;
5. 根据需要配置tnsnames.ora文件
如果要用组件访问Oracle数据库,那么就要根据需要配置tnsnames.ora文件,并存放于%ORACLE_HOME% etworkadmin目录下。
我的tnsnames.ora文件格式如下,供参考:
ORA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.26.231)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ora)
)
)
卸载ODAC的方法
方法1:
用cmd进入到ODAC的安装路径下,然后运行该路径下的uninstall.bat批处理文件。这里也是要注意参数的运用。
================================================
若要卸载掉所有组件,可以这样:
uninstall.bat all ODAC
或者
uninstall.bat all D:OracleClient
================================================
若要卸载掉某一个指定的组件,可以这样:
uninstall.bat oledb ODAC
或者
uninstall.bat oledb D:OracleClient
方法2:
手动删除掉安装目录,并把之前添加的环境变量也一并删除即可
install.bat和uninstall.bat两个批处理文件会在安装目录下分别产生install.log和uninstall.log两个日志文件。
二、将DLL注册到GAC(根据需要决定是否需要此步)
使用方法如下:
方法1: (1).开始菜单->Microsoft Visual Studio 2010 ->Visual Studio Tools->Visual Studio Command Prompt (2010) 命令提示,在控制台中输入 gacutil.exe 回车,既可以看到一些参数。
(2).输入:gacutil.exe -i dll路径,就可完成DLL的注册。
注:如果输入gacutil.exe找不到,我的电脑里面安装了VS2010和VS2013,使用此方法失败。
方法2:(1).在路径C:Program Files (x86)Microsoft SDKsWindowsv8.0AinNETFX 4.0 Tools 下找到gacutil.exe。(不同的操作系统,可能不一样)
(2).打开cmd,输入cd C:Program Files (x86)Microsoft SDKsWindowsv8.0AinNETFX 4.0 Tools,进入当前路径下,
然后输入gacutil /i C:ProjectsCodeEARBranch20130515TelerikTelerik.OpenAccess.dll即可完成注册。
注:该方法主要是找到gacutil.exe,进入该路径下,注册对应dll所在的物理地址。
以上完成了使用 Gacutil.exe 注册DLL, Gacutil.exe具体的使用请参见 http://msdn.microsoft.com/zh-CN/library/ex0ss12c.aspx 。
参考文章整理:
http://www.cnblogs.com/Andy-Li/p/6392841.html
http://jingyan.baidu.com/article/e4511cf336ce872b845eafd4.html