随笔 - 423, 文章 - 76, 评论 - 32, 阅读 - 41万
  博客园  :: 首页  :: 新随笔  :: 联系 :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

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

Posted on   codingsilence  阅读(1512)  评论(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

编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示