FIX: Null characters may appear in parts of the string that is returned when you use the "System.Data.OracleClient.OracleDataReader" class to return the results from a query in the .NET Framework 2.0

In the Microsoft .NET Framework 2.0, you use the System.Data.OracleClient.OracleDataReader class to return the results from a query to a field of the LONG data type in an Oracle 10g database. If the string is longer than 8,162 characters, null characters may appear in parts of the string that is returned.
This problem occurs because of an issue in the System.Data.OracleClient namespace. The System.Data.OracleClient namespace is the managed Oracle data provider. The managed Oracle data provider uses the native Oracle client that is installed on the computer. To read data that is contained in LONG fields, the managed Oracle data provider passes the following to the native Oracle client:
  • A callback function
  • A pointer to a special unmanaged buffer
The size of the unmanaged buffer is 8 kilobytes (KB). The native Oracle client uses this callback function to write the data in chunks to the unmanaged buffer. In each call to the function, the length of the chunk that is written to the unmanaged buffer is supplied.

The current version of the System.Data.OracleClient namespace incorrectly assumes that all chunk buffers except the last one are completely filled. This assumption is correct only in versions of the Oracle client earlier than version 10g. In Oracle 10g, the buffers before the last one may be only partially filled, and any null bytes at the end of each buffer may be incorrectly read and processed as null characters.

Hotfix information

To resolve this problem, install the hotfix that is mentioned in the following article in the Microsoft Knowledge Base:
948815 Availability of the .NET Framework 2.0 post-Service Pack 1 hotfix rollup package for System.Data.dll and System.Data.OracleClient.dll


You must have the .NET Framework 2.0 Service Pack 1 installed to apply this hotfix.

Restart requirement

You do not have to restart the computer after you apply this hotfix.

Hotfix replacement information

This hotfix does not replace any other hotfixes.

File information

The English version of this hotfix has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in Coordinated Universal Time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time item in Control Panel.
The .NET Framework 2.0, x86 versions
File nameFile versionFile sizeDateTimePlatform,998,27204-Feb-200820:49x86,35204-Feb-200820:49x86
The .NET Framework 2.0, x64 versions
File nameFile versionFile sizeDateTimePlatform,998,27204-Feb-200820:49x86,35204-Feb-200820:49x86,113,47214-Jan-200815:36x64,71214-Jan-200815:36x64
The .NET Framework 2.0, Itanium-based versions
File nameFile versionFile sizeDateTimePlatform,998,27204-Feb-200820:49x86,35204-Feb-200820:49x86,208,19204-Feb-200817:25IA-64,80804-Feb-200817:25IA-64
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
For more information about the LONG Oracle data type, visit the following Microsoft Developer Network Web site:For more information about software update terminology, click the following article number to view the article in the Microsoft Knowledge Base:
824684 Description of the standard terminology that is used to describe Microsoft software updates
The third-party products that this article discusses are manufactured by companies that are independent of Microsoft. Microsoft makes no warranty, implied or otherwise, about the performance or reliability of these products.

Article ID: 948867 - Last Review: 10/08/2011 09:26:00 - Revision: 2.0

Microsoft .NET Framework 2.0

  • kbexpertiseadvanced kbqfe KB948867