Requisitos do sistema para o provedor de dados .NET Framework para Oracle
O Provedor de Dados do .NET Framework para Oracle requer o Microsoft Data Access Components (MDAC) versão 2.6 ou posterior. MDAC 2.8 SP1 é recomendado.
Você também deve ter o Oracle 8i Release 3 (8.1.7) Client ou posterior instalado.
O software Oracle Client anterior à versão Oracle 9i não pode acessar bancos de dados UTF16 porque UTF16 é um novo recurso no Oracle 9i. Para usar esse recurso, você deve atualizar o software cliente para Oracle 9i ou posterior.
Trabalhando com o provedor de dados para dados Oracle e Unicode
A seguir está uma lista de problemas relacionados ao Unicode que você deve considerar ao trabalhar com o provedor de dados .NET Framework para bibliotecas de cliente Oracle e Oracle. Para obter mais informações, consulte a documentação do Oracle.
Definindo o valor Unicode em um atributo de cadeia de conexão
Ao trabalhar com o Oracle, você pode usar o atributo de cadeia de conexão
Unicode=True
para inicializar as bibliotecas de cliente Oracle no modo UTF-16. Isso faz com que as bibliotecas de cliente Oracle aceitem UTF-16 (que é muito semelhante ao UCS-2) em vez de cadeias de caracteres de vários bytes. Isso permite que o Provedor de Dados para Oracle sempre trabalhe com qualquer página de código Oracle sem trabalho de tradução adicional. Essa configuração só funciona se você estiver usando clientes Oracle 9i para se comunicar com um banco de dados Oracle 9i com o conjunto de caracteres alternativos de AL16UTF16. Quando um cliente Oracle 9i se comunica com um servidor Oracle 9i, recursos adicionais são necessários para converter os valores Unicode CommandText para o conjunto de caracteres multibyte apropriado que o servidor Oracle9i usa. Isso pode ser evitado quando você sabe que tem a configuração segura adicionando Unicode=True
à sua cadeia de conexão.
Misturando versões do Oracle Client e do Oracle Server
Os clientes Oracle 8i não podem acessar dados NCHAR, NVARCHAR2 ou NCLOB em bancos de dados Oracle 9i quando o conjunto de caracteres nacionais do servidor é especificado como AL16UTF16 (a configuração padrão para Oracle 9i). Como o suporte para o conjunto de caracteres UTF-16 não foi introduzido até o Oracle 9i, os clientes Oracle 8i não podem lê-lo.
Trabalhando com dados UTF-8
Para definir o conjunto de caracteres alternativo, defina a Chave do Registro HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMEID\NLS_LANG como UTF8. Consulte as notas de instalação do Oracle em sua plataforma para obter mais informações. A configuração padrão é o conjunto de caracteres primário do idioma a partir do qual você está instalando o software Oracle Client. Não definir o idioma para corresponder ao conjunto de caracteres do idioma nacional do banco de dados ao qual você está se conectando fará com que as associações de parâmetros e colunas enviem ou recebam dados no conjunto de caracteres do banco de dados principal, não no conjunto de caracteres nacionais.
O OracleLob só pode atualizar caracteres completos.
Por motivos de usabilidade, o OracleLob objeto herda da classe Stream do .NET Framework e fornece os métodos ReadByte e WriteByte . Ele também implementa métodos, como CopyTo e Erase, que funcionam em seções de objetos LOB Oracle. Em contraste, o software cliente Oracle fornece várias APIs para trabalhar com caracteres LOBs (CLOB e NCLOB). No entanto, essas APIs funcionam apenas em caracteres completos. Devido a essa diferença, o provedor de dados para Oracle implementa suporte para leitura e ReadByte para trabalhar com dados UTF-16 de maneira byte-wise. No entanto, os outros métodos do objeto OracleLob só permitem operações de caracteres completos.