博客园  :: 首页  :: 新随笔  :: 联系 :: 管理

ODP.NET开发和部署的相关问题

Posted on 2011-07-14 14:20  codingsilence  阅读(1505)  评论(2编辑  收藏  举报
 

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