Usando Unicode em Aplicações Globalizadas
Você pode inserir e recuperar dados Unicode. Os dados são convertidos de forma transparente entre os programas do banco de dados e do cliente, o que assegura que os programas clientes não dependam do conjunto de caracteres do banco de dados e nacionais.
Consulte também:
-
Oracle Database Globalization Support Guide para mais informações sobre programação de SQL e PL/SQL com Unicode
-
Oracle Database Globalization Support Guide para informações gerais sobre programação com Unicode
Representando os Literais da String Unicode no SQL e PL/SQL
Há três maneiras de representar uma literal de string Unicode em SQL ou PL/SQL, conforme mostrado nos exemplos a seguir.
-
Na sequência
Exemplo:
N'résumé'.Limitações: Consulte "Evitando Perda de Dados Durante Conversão de Conjunto de Caracteres".
-
NCHR(number)
A função SQL NCHR retorna o caractere cujo equivalente binário é o número no conjunto de caracteres nacionais. O caractere retornado tem o tipo de dados NVARCHAR2.
Exemplo:
NCHR(36)representa $ no conjunto de caracteres nacionais padrão, AL16UTF16.Limitações: A portabilidade do valor de NCHR(número) é limitada a aplicativos que usam o mesmo conjunto de caracteres nacionais.
-
UNISTR('string')
A função SQL UNISTR converte a string no conjunto de caracteres nacionais.
Para a portabilidade e a preservação de dados, a Oracle recomenda que a string contenha somente caracteres ASCII e valores de codificação Unicode. Um valor de codificação Unicode tem a forma \xxxx, em que xxxx é o Valor hexadecimal de um valor de código do caractere no formato da codificação UCS-2.
Exemplo:
UNISTR('G\0061ry')representa 'Gary'Os caracteres ASCII são convertidos para o conjunto de caracteres do banco de dados e, em seguida, para o conjunto de caracteres nacionais. Os valores da codificação do Unicode são convertidos diretamente para o conjunto de caracteres nacionais.
Consulte também:
-
Oracle Database Globalization Support Guide para mais informações sobre literais de string Unicode
-
Referência de Linguagem do Oracle Database SQL para mais informações sobre a função NCHR
-
Para obter mais informações sobre a função UNISTR, consulte Oracle Database SQL Language Reference
Evitando a Perda de Dados Durante a Conversão do Conjunto de Caracteres
Como parte de uma instrução SQL ou PL/SQL, um literal (com ou sem o prefixo N) é codificado no mesmo conjunto do restante da instrução. No lado do cliente, a instrução é codificada no conjunto do caractere do cliente, que é determinado pelo parâmetro NLS_LANG. No lado do servidor, a instrução é codificada no conjunto de caracteres do banco de dados.
Quando a instrução SQL ou PL/SQL for transferida do cliente para o banco de dados, seu conjunto de caracteres será convertido apropriadamente. Se o conjunto de caracteres do banco de dados não contiver todos os caracteres usados pelo cliente em literais de texto, então os dados serão perdidos nesta conversão. Os literais da string NCHAR são mais vulneráveis que os literais de texto CHAR, porque eles foram projetados para serem independentes do conjunto de caractere do banco de dados.
Para evitar perda de dados na conversão para um conjunto de caracteres de banco de dados incompatível, você pode ativar a funcionalidade de substituição literal NCHAR. Para obter mais informações, consulte Oracle Database Globalization Support Guide.