ODP.NET是强命名的,编译时使用的Oracle.DataAccess.dll版本必须和运行时的dll完全一致,才能运行;所以通过替换dll兼容不同版本的ODP.NET是不可行的,只能更换引用(reference)重新编译。
ODP.NET和Oracle客户端的版本是严格对应的,版本不匹配,运行时会报错,如ora-12154 。在部署时,要注意这一点。下面是本人测试的一些对应关系
ODP.NET 09 9.2.0.700 -- Oracle Client 9.2.0.1.0 (9i的其他版本未测试)
ODP.NET 10 2.102.2.20 -- Oracle Client 10.2.0.3.0 (10g的其他版本未测试)
ODP.NET 11 2.112.1.0 -- Oracle Client 11.2.0.1.0
ODP.NET 11 2.112.2.0 -- ?? (ODP.NET 2.112.2.0不兼容Oracle Client 11.2.0.1.0)
以上测试均在32位Windows XP中进行
****
ODP.NET的核心组件有2个:Oracle.DataAccess.dll,OraOps*.dll。
OraOps*.dll在不同版本中的名称:
9i -- OraOps9.dll
10g -- OraOps10w.dll
11g -- OraOps11w.dll
部署时(即运行环境中),如果安装了oracle 客户端但没有安装ODP.NET,只需将Oracle.DataAccess.dll,OraOps*.dll复制到exe文件所在的文件夹,就能运行。
如果不想安装oracle 客户端,参见下面的文章,注意连接字符串(conn string)的写法:
http://hi.baidu.com/fenglang12345/blog/item/0d55774ce85192f3d62afc73.html
http://hi.baidu.com/aliasmic/blog/item/803bf9ff908b683d5d6008ee.html
开发和部署的时候,如果碰到问题,先看看这里:
http://hi.baidu.com/ma_maker/blog/item/5ce780c83c90031392457ec4.html
****
查看Oracle客户端版本号的方法:
C:\Documents and Settings\Administrator>sqlplus /nolog
显示类似下面的内容
SQL*Plus: Release 9.2.0.1.0 - Production on 星期三 9月 7 11:31:33 2005
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL>
查看Oracle服务端版本号的方法:
select * from v$version
****
Oracle客户端9i--11g支持的最低服务端版本:8.1.7