Требования к системе для поставщика данных платформы .NET Framework для Oracle

Поставщику данных платформы .NET Framework для Oracle требуются компоненты Microsoft Data Access Components (MDAC) версии 2.6 или более поздней версии. Рекомендуется MDAC 2.8 с пакетом обновления 2 (SP1).

Кроме того, необходимо установить клиент Oracle 8i Release 3 (8.1.7) или более поздних версий.

Клиентское ПО Oracle версии до Oracle 9i не сможет получить доступ к базам данных UTF16, поскольку поддержка кодировки UTF16 впервые введена в Oracle 9i. Для ее применения необходимо обновить клиентское ПО до версии Oracle 9i или более поздней.

Работа с поставщиком данных для Oracle и данных Юникода

Ниже приведен список проблем, связанных с Юникодом, которые следует учитывать при работе с поставщиком данных платформа .NET Framework для клиентских библиотек Oracle и Oracle. Дополнительные сведения см. в документации по Oracle.

Установка значения Юникода в атрибуте строки соединения

При работе с Oracle можно использовать атрибут строки соединения

Unicode=True

для инициализации клиентских библиотек Oracle в режиме UTF-16. Тем самым клиентские библиотеки Oracle смогут принимать UTF-16 (очень похожий на UCS-2) вместо многобайтовых строк. Это позволит поставщику данных для Oracle постоянно работать с любыми кодовыми страницами Oracle без дополнительных преобразований. Такая конфигурация работает только если для связи с базой данных Oracle 9i с альтернативной кодировкой AL16UTF16 используются клиенты Oracle 9i. Когда клиент Oracle 9i взаимодействует с сервером Oracle 9i, для преобразования значений Юникода CommandText в соответствующий многобайтовый набор, используемый сервером Oracle9i, требуются дополнительные ресурсы. Этого можно избежать, добавив в строку соединения параметр Unicode=True, если известно, что безопасная конфигурация поддерживается.

Работа различных версий клиентского и серверного ПО Oracle

Клиенты Oracle 8i не могут получить доступ к данным NCHAR, NVARCHAR2 или NCLOB в базах данных Oracle 9i, если национальный набор символов сервера указан как AL16UTF16 (параметр по умолчанию для Oracle 9i). Поскольку поддержка кодировки UTF-16 была введена только в Oracle 9i, клиенты Oracle 8i не могут считывать эту кодировку.

Работа с данными UTF-8

Чтобы установить альтернативную кодировку, присвойте ключу реестра HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMEID\NLS_LANG значение UTF8. Дополнительные сведения о см. в примечаниях установки Oracle для конкретной платформы. Параметром по умолчанию является первичная кодировка языка, на котором устанавливается клиентское ПО Oracle. Если язык не соответствует национальной кодировке языка базы данных, с которой происходит соединение, то привязки параметров и столбцов отправляют и получают данные в кодировке базы данных-источника, а не в национальной кодировке.

Объект OracleLob может обновлять только полные символы.

По соображениям OracleLob удобства использования объект наследует от класса Stream платформа .NET Framework и предоставляет методы ReadByte и WriteByte. Он также реализует методы, такие как CopyTo и Erase, которые работают над разделами объектов Oracle LOB . В отличие от этого, клиентское программное обеспечение Oracle предоставляет ряд API для работы с символьными БИЗНЕС-объектами(CLOB и NCLOB). Однако эти API-интерфейсы работают только с полными символами. Из-за этого различия поставщик данных для Oracle реализует поддержку read и ReadByte для работы с данными UTF-16 по байтам. Однако другие методы объекта OracleLob разрешают операции с полным символом.

См. также