Requisitos do sistema para o provedor de dados do .NET Framework para Oracle
O provedor de dados .NET Framework para Oracle requer o MDAC (Microsoft Data Access Components) versão 2.6 ou posterior. O MDAC 2.8 SP1 é recomendado.
Também é necessário ter o Cliente Oracle 8i Release 3 (8.1.7) ou posterior instalado.
O software cliente Oracle 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 o Oracle 9i ou posterior.
Trabalhar com o provedor de dados para dados Oracle e Unicode
Veja a seguir uma lista de problemas relacionados ao Unicode que você deve considerar ao trabalhar com clientes do Provedor de Dados .NET Framework para Oracle e bibliotecas de cliente Oracle. Para saber mais, consulte a documentação da Oracle.
Definir o valor Unicode em um atributo de cadeia de conexão
Ao trabalhar com o Oracle, é possível 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ó funcionará se você estiver usando clientes Oracle 9i para se comunicar com um banco de dados Oracle 9i com o conjunto de caracteres alternativo de AL16UTF16. Quando um cliente Oracle 9i se comunica com um servidor Oracle 9i, recursos adicionais são necessários para converter os valores CommandText Unicode no conjunto de caracteres de vários bytes apropriado que o servidor Oracle9i usa. Isso pode ser evitado quando você sabe que tem a configuração segura adicionando Unicode=True
à cadeia de conexão.
Combinar versões do Cliente Oracle e do Servidor Oracle
Os clientes Oracle 8i não podem acessar dados NCHAR, NVARCHAR2 ou NCLOB em bancos de dados Oracle 9i quando o conjunto de caracteres nacional do servidor estiver 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.
Trabalhar 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 anotações 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 do qual você está instalando o software cliente Oracle. Não definir o idioma para corresponder ao conjunto de caracteres de 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 primário, não no conjunto de caracteres nacional.
OracleLob só pode atualizar caracteres completos.
Por motivos de usabilidade, o objeto OracleLob 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 do Oracle. Por outro lado, o software cliente Oracle fornece uma série de APIs para trabalhar com LOBs (CLOB e NCLOB) de caracteres. No entanto, essas APIs funcionam somente em caracteres completos. Devido a essa diferença, o provedor de dados para Oracle implementa o suporte para Read e ReadByte para trabalhar com dados UTF-16 de maneira byte. No entanto, os outros métodos do objeto OracleLob permitem apenas operações de caractere completo.