O Unicode é um dos padrões de codificação mais influentes e poderosos no mundo do desenvolvimento. O Unicode representa caracteres de quase todos os idiomas codificando os caracteres em um código inteiro entre 0 e 0x10ffff.
Devido à versatilidade dos bancos de dados, você irá, de vez em quando, converter uma string em sua representação Unicode.
Neste tutorial, você aprenderá como usar a função decompose() dos bancos de dados Oracle para converter um dado em sua representação Unicode.
Sintaxe da Função de Decomposição do Oracle
A sintaxe da função é mostrada abaixo:
DECOMPOSE(string [, { 'CANÔNICO' | 'COMPATIBILIDADE' } ] )
A função aceita dois argumentos:
- Corda – representa a string a ser convertida em composição Unicode. O valor desse parâmetro pode ser CHAR, VARCHAR, NCHAR, NVARCHAR2, CLOB e NCLOB.
- CANÔNICO – definir o valor como canônico permite que a função execute uma decomposição canônica que permite a recomposição da string original. Se não for especificado, a função usará esse parâmetro por padrão.
- COMPATIBILIDADE – se o valor for configurado para compatibilidade, a função fará a decomposição em modo de compatibilidade. Este modo não permite a recomposição da string original. Use esta opção ao decompor caracteres katakana de meia largura e largura total.
É bom ter em mente que os tipos CLOB e NCLOB são suportados por conversão explícita.
Exemplo de uso da função
Os exemplos a seguir demonstram como usar a função decompose() dos bancos de dados Oracle.
Exemplo 1 - Uso de funções básicas
O código simples a seguir mostra como usar a função decompose para decompor uma string em sua representação Unicode.
selecione decompose('Hello') como saída de dual;A execução do código acima deve retornar a string de saída como:
Exemplo 2 – Obtendo o Código ASCII
Para buscar os valores inteiros Unicode, podemos passar a string resultante para a função asciistr conforme mostrado no exemplo abaixo:
selecione asciistr(decompose('你好')) como saída de dual;Saída:
Exemplo 3 – Usando a função com caracteres não Unicode
Se fornecermos à função caracteres não Unicode, a função retornará a string de entrada sem nenhuma modificação.
Um exemplo de demonstração é o seguinte:
selecione decompose('l') como saída de dual;Resultado:
O mesmo caso se aplica mesmo ao usar a função asciistr.
selecione asciistr(('l')) como saída de dual;Saída:
Exemplo 4 – Usando a Função com Argumento NULL
A função retornará um valor NULL se o valor de entrada for NULL.
Exemplo:
selecione (NULL) como saída de dual;Saída:
Exemplo 5 – Chamando a função com parâmetros ausentes
O parâmetro string na função é obrigatório. Portanto, se não passarmos o valor da string, a função retornará um erro conforme mostrado:
selecione () como saída de dual;Resultado:
Erro SQL: ORA-00938: não há argumentos suficientes para a função00938. 00000 - 'não há argumentos suficientes para a função'
Conclusão
Neste tutorial, você aprendeu a usar a função decompose() do Oracle para converter uma string em sua representação Unicode.