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 AI Database Globalization Support Guide para mais informações sobre programação SQL e PL/SQL com Unicode
-
Oracle AI 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 string literal Unicode em SQL ou PL/SQL.
As três maneiras de representar uma literal de string Unicode em SQL ou PL/SQL são:
-
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 portabilidade e preservação de dados, use strings que contenham apenas 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 AI Database Globalization Support Guide para mais informações sobre literais de string Unicode
-
Oracle AI Database SQL Language Reference para mais informações sobre a função NCHR
-
Para obter mais informações sobre a função UNISTR, consulte Oracle AI 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 AI Database Globalization Support Guide.