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

Função CHR() no Oracle


No Oracle, o CHR() A função retorna um caractere com base nos valores de código fornecidos como argumento.

Mais especificamente, ele retorna o caractere com o equivalente binário ao seu argumento como um VARCHAR2 valor no conjunto de caracteres do banco de dados ou, se você especificar USING NCHAR_CS , o conjunto de caracteres nacional.

Sintaxe


A sintaxe fica assim:
CHR(n [ USING NCHAR_CS ])

Onde n é um NUMBER valor ou qualquer valor que possa ser convertido implicitamente em NUMBER .

O USING NCHAR_CS argument é um argumento opcional que permite especificar o conjunto de caracteres nacional.

Exemplo


Aqui está um exemplo simples para demonstrar:
SELECT CHR(65)
FROM DUAL;

Resultado:
   CHR(65) 
__________ 
A         

Aqui eu forneci um número e CHR() retornou o caractere correspondente. Neste caso, o inteiro 65 mapeia para a letra maiúscula A .

Sensibilidade de maiúsculas e minúsculas


Aqui está um exemplo que distingue uma letra maiúscula de sua contraparte minúscula:
SELECT 
    CHR(72),
    CHR(104)
FROM DUAL;

Resultado:
   CHR(72)    CHR(104) 
__________ ___________ 
H          h           

Retorne uma string de vários caracteres


Para produzir uma string com vários caracteres, podemos concatenar vários CHR() funções:

Exemplo:
SELECT CHR(65) || CHR(77)
FROM DUAL;

Resultado:
   CHR(65)||CHR(77) 
___________________ 
AM                  

O NCHAR_CS Argumento


Aqui está um exemplo de como passar o segundo argumento (opcional):
SELECT CHR (257 USING NCHAR_CS)
FROM DUAL;

Resultado:
   CHR(257USINGNCHAR_CS) 
________________________ 
ā                       

Isso é o mesmo que usar o NCHR() função.

Valores nulos


Passando null retorna null :
SET NULL 'null';

SELECT CHR(null)
FROM DUAL;

Resultado:
   CHR(NULL) 
____________ 
null        

Por padrão, SQLcl e SQL*Plus retornam um espaço em branco sempre que null 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 incorreta de argumentos


Chamando CHR() sem passar nenhum argumento retorna um erro:
SELECT CHR()
FROM DUAL;

Resultado:
Error starting at line : 1 in command -
SELECT CHR()
FROM DUAL
Error at Command Line : 1 Column : 8
Error report -
SQL Error: ORA-00938: not enough arguments for function
00938. 00000 -  "not enough arguments for function"
*Cause:    
*Action:

E passar o número errado de argumentos resulta em um erro:
SELECT CHR(1, 2, 3)
FROM DUAL;

Resultado:
Error starting at line : 1 in command -
SELECT CHR(1, 2, 3)
FROM DUAL
Error at Command Line : 1 Column : 8
Error report -
SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"
*Cause:    
*Action: