Системные требования (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 наследует из класса .NET Framework Stream, обеспечивая работу методов ReadByte и WriteByte. Кроме того, он реализует такие методы, как CopyTo и Erase, работающие с частями LOB-объектов Oracle. В отличие от этого клиентское программное обеспечение Oracle предоставляет некоторые API-интерфейсы для работы с символьными объектами LOB (CLOB и NCLOB). Однако эти API-интерфейсы работают только с полными символами. Из-за такого отличия поставщик данных для Oracle реализует поддержку методов Read и ReadByte для работы с данными UTF-16 побайтовым способом. Однако другие методы объекта OracleLob позволяют выполнять операции только с полными символами.