Oracle Decompose

Oracle Decompose



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:





  1. 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.
  2. 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.
  3. 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ção
00938. 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.