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

Função NCHR() no Oracle


No Oracle, o NCHR() A função retorna o caractere com o equivalente binário ao seu argumento no conjunto de caracteres nacional.

É o equivalente a usar o CHR() função com a função USING NCHAR_CS argumento.

Sintaxe


A sintaxe fica assim:
NCHR(number)

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

O valor retornado é sempre NVARCHAR2 .

Exemplo


Aqui está um exemplo simples para demonstrar:
SELECT NCHR(257)
FROM DUAL;

Resultado:
   NCHR(257) 
____________ 
ā           

Aqui eu forneci um número e NCHR() retornou o caractere correspondente no conjunto de caracteres nacional. Neste caso, o inteiro 257 mapeia para o caractere ā .

Podemos obter o mesmo resultado com o CHR() função ao usar o USING NCHAR_CS argumento:
SELECT CHR (257 USING NCHAR_CS)
FROM DUAL;

Resultado:
   CHR(257USINGNCHAR_CS) 
________________________ 
ā                       

Valores nulos


Passando null retorna null :
SET NULL 'null';

SELECT NCHR(null)
FROM DUAL;

Resultado:
   NCHR(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 NCHR() sem passar nenhum argumento retorna um erro:
SELECT NCHR()
FROM DUAL;

Resultado:
Error starting at line : 1 in command -
SELECT NCHR()
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 NCHR(1, 2, 3)
FROM DUAL;

Resultado:
Error starting at line : 1 in command -
SELECT NCHR(1, 2, 3)
FROM DUAL
Error at Command Line : 1 Column : 19
Error report -
SQL Error: ORA-00939: too many arguments for function
00939. 00000 -  "too many arguments for function"
*Cause:    
*Action: