Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Função ASCIISTR() no Oracle

No Oracle Database, o ASCIISTR() A função retorna uma versão ASCII da string fornecida no conjunto de caracteres do banco de dados.

Sintaxe

A sintaxe é assim:

ASCIISTR(char)

Onde char é uma string ou uma expressão que resolve para uma string, em qualquer conjunto de caracteres.

Caracteres não ASCII são convertidos no formato \xxxx , onde xxxx representa uma unidade de código UTF-16.

Exemplo

Aqui está um exemplo:

SELECT ASCIISTR('Fish')
FROM DUAL;

Resultado:

Fish

Nesse caso, o resultado é o mesmo da entrada, pois a entrada utilizou caracteres ASCII.

Aqui está outro que usa caracteres não ASCII:

SELECT ASCIISTR('ปลา')
FROM DUAL;

Resultado:

\0E1B\0E25\0E32

Aqui, obtemos cada um dos três caracteres retornados em seus equivalentes ASCII.

Neste caso, a entrada (ปลา ) é a palavra tailandesa para “peixe”. Isso pode ser pronunciado como “Plā”.

Veja o que acontece quando passamos Plā para o ASCIISTR() função:
SELECT ASCIISTR('Plā')
FROM DUAL;

Resultado:

Pl\0101

Nesse caso, os dois primeiros caracteres que passamos são caracteres ASCII, mas o terceiro caractere não é ASCII. Portanto, a função retorna os dois primeiros caracteres inalterados e o terceiro convertido para ASCII.

Aqui está outro que passa น้ำ , que é a palavra tailandesa para “água”:
SELECT ASCIISTR('น้ำ')
FROM DUAL;

Resultado:

\0E19\0E49\0E33

Valores nulos

Se o argumento for null , o resultado é null :

SET NULL 'null';
SELECT ASCIISTR(null)
FROM DUAL;

Resultado:

null

Por padrão, SQLcl e SQL*Plus retornam um espaço em branco sempre que um valor nulo ocorre como resultado de um SQL SELECT demonstração.

No entanto, você pode usar SET NULL para especificar uma string diferente a ser retornada. Aqui eu especifiquei que a string null deve ser devolvido.

Contagem de argumentos inválidos

Chamando ASCIISTR() sem nenhum argumento resulta em um erro:

SELECT ASCIISTR()
FROM DUAL;

Resultado:

SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"