请问,在同一机器上安装了ORACLE服务端,还需要安装客户端吗?为什么我使用ASP。NET项目,运行时提示System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本。这是提示必须安装客户端吗?

解决方案 »

  1.   

    如果典型安装而不是定制安装,安装数据库服务器端会同时安装客户端软件的。提示必须安装客户端吗?
    ========================
    oracle 客户端的网络通讯接口部分(称为 net 8 或 oracle net)是必须安装的。
      

  2.   

    像楼主的问题,即使安装了客户端也会有相同提示,好像微软故意与Oracle闹别捏.
    解决方案:安装一个专为.net写的Oracle驱动:名字好像是Oracle_net,具体记不太轻了.好用!
      

  3.   

    到这里看一下:使用 Oracle .NET Framework 数据提供程序
    部分内容为:
    .NET Framework 开发人员指南
    使用 Oracle .NET Framework 数据提供程序本节描述 Oracle .NET Framework 数据提供程序特定的功能和行为。Oracle .NET Framework 数据提供程序支持使用 Oracle 客户端软件提供的 Oracle 调用接口 (OCI) 访问 Oracle 数据库。该数据提供程序设计的功能与 SQL Server、OLE DB 和 ODBC 的 .NET Framework 数据提供程序的功能类似。要使用 Oracle .NET Framework 数据提供程序,应用程序必须如下所示引用 System.Data.OracleClient 命名空间:Visual Basic 复制代码Imports System.Data.OracleClient
    C# 复制代码using System.Data.OracleClient;在编译代码时还必须包括对 .DLL 的引用。例如,如果编译的是 C# 程序,命令行中应包括: 复制代码csc /r:System.Data.OracleClient.dll
      

  4.   

    以下引用Microsoft的官方解释:Oracle .NET Framework 数据提供程序需要 Microsoft 数据访问组件 (MDAC) 2.6 版或更高版本。 建议使用 MDAC 2.8 SP1。还必须安装 Oracle 8i Release 3 (8.1.7) 客户端或更高版本。Oracle 9i 版本之前的 Oracle 客户端软件无法访问 UTF16 数据库,因为 UTF16 是 Oracle 9i 中的一项新功能。 要使用此功能,必须将客户端软件升级到 Oracle 9i 或更高版本。 使用 Oracle 数据提供程序和 Unicode 数据 
    下表列出在使用 Oracle .NET Framework 数据提供程序和 Oracle 客户端库时,应考虑的与 Unicode 有关的问题。 有关更多信息,请参见 Oracle 文档。在连接字符串属性中设置 Unicode 值
    在使用 Oracle 时,可以使用连接字符串属性  复制代码Unicode=True 
    在 UTF-16 模式下初始化 Oracle 客户端库。 这样可以使 Oracle 客户端库接受 UTF-16(与 UCS-2 非常类似),而不是多字节字符串。 这样,Oracle 数据提供程序始终可以使用任何 Oracle 代码页,不需要进行其他转换工作。 只有使用 Oracle 9i 客户端与包含备选字符集 AL16UTF16 的 Oracle 9i 数据库进行通信时,此配置才有效。 当 Oracle 9i 客户端与 Oracle 9i 服务器进行通信时,需要使用其他资源将 Unicode CommandText 值转换为 Oracle9i 服务器使用的相应的多字节字符集。 如果确定已通过将 Unicode=True 添加到连接字符串中而拥有了安全的配置,则可以避免此问题。混合版本的 Oracle 客户端和 Oracle 服务器
    如果服务器的国家字符集指定为 AL16UTF16(Oracle 9i 的默认设置),Oracle 8i 客户端无法访问 Oracle 9i 数据库中的 NCHAR、NVARCHAR2 或 NCLOB 数据。 因为直到 Oracle 9i 才引入对 UTF-16 字符集的支持,Oracle 8i 客户端无法读取。使用 UTF-8 数据
    要设置备选字符集,将注册表项 HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMEID\NLS_LANG 设置为 UTF8。 有关更多信息,请参见适合您的平台的 Oracle 安装说明。 默认设置为安装 Oracle 客户端软件所使用的语言的主要字符集。 如果设置的语言与所连接的数据库的国家语言字符集不匹配,将使参数和列绑定使用主要数据库字符集发送或接收数据,而不是使用国家字符集。OracleLob 只能更新完整字符。
    出于可用性原因,OracleLob 对象继承自 .NET Framework 流类,并提供 ReadByte 和 WriteByte 方法。该对象还实现 CopyTo 和 Erase 等方法,适用于 Oracle LOB 对象的各个部分。 相反,Oracle 客户端软件提供许多 API 来使用字符 LOB(CLOB 和 NCLOB)。 但是,这些 API 只适用于完整字符。 因为这一区别,Oracle 数据提供程序实现了对 Read 和 ReadByte 的支持,以便以字节感应的方式使用 UTF-16 数据。 但是,OracleLob 对象的其他方法只允许完整字符操作。