Oracle
 sql >> Database >  >> RDS >> Oracle

Funzione NCHR() in Oracle

In Oracle, il NCHR() La funzione restituisce il carattere che ha l'equivalente binario del suo argomento nel set di caratteri nazionale.

È l'equivalente dell'utilizzo di CHR() funzione con il USING NCHAR_CS argomento.

Sintassi

La sintassi è questa:

NCHR(number)

Dove number è un NUMBER value o qualsiasi valore che può essere convertito in modo implicito in NUMBER .

Il valore restituito è sempre NVARCHAR2 .

Esempio

Ecco un semplice esempio da dimostrare:

SELECT NCHR(257)
FROM DUAL;

Risultato:

   NCHR(257) 
____________ 
ā           

Qui ho fornito un numero e NCHR() ha restituito il carattere corrispondente nel set di caratteri nazionale. In questo caso, il numero intero 257 mappa al carattere ā .

Possiamo ottenere lo stesso risultato con CHR() funzione quando si utilizza il USING NCHAR_CS argomento:

SELECT CHR (257 USING NCHAR_CS)
FROM DUAL;

Risultato:

   CHR(257USINGNCHAR_CS) 
________________________ 
ā                       

Valori Nulli

Passaggio null restituisce null :

SET NULL 'null';

SELECT NCHR(null)
FROM DUAL;

Risultato:

   NCHR(NULL) 
_____________ 
null          

Per impostazione predefinita, SQLcl e SQL*Plus restituiscono uno spazio vuoto ogni volta che null si verifica come risultato di un SQL SELECT dichiarazione.

Tuttavia, puoi utilizzare SET NULL per specificare una stringa diversa da restituire. Qui ho specificato che la stringa null deve essere restituito.

Conteggio argomenti errato

Chiamando NCHR() senza passare alcun argomento restituisce un errore:

SELECT NCHR()
FROM DUAL;

Risultato:

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 il passaggio del numero errato di argomenti genera un errore:

SELECT NCHR(1, 2, 3)
FROM DUAL;

Risultato:

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: