Oracle
 sql >> Base de données >  >> RDS >> Oracle

Fonction CHR() dans Oracle

Dans Oracle, le CHR() La fonction renvoie un caractère basé sur les valeurs de code fournies en argument.

Plus précisément, il renvoie le caractère ayant l'équivalent binaire de son argument sous la forme d'un VARCHAR2 valeur dans le jeu de caractères de la base de données ou, si vous spécifiez USING NCHAR_CS , le jeu de caractères national.

Syntaxe

La syntaxe ressemble à ceci :

CHR(n [ USING NCHAR_CS ])

n est un NUMBER value, ou toute valeur pouvant être implicitement convertie en NUMBER .

Le USING NCHAR_CS argument est un argument facultatif qui vous permet de spécifier le jeu de caractères national.

Exemple

Voici un exemple simple pour illustrer :

SELECT CHR(65)
FROM DUAL;

Résultat :

   CHR(65) 
__________ 
A         

Ici, j'ai fourni un nombre, et CHR() renvoyé le caractère correspondant. Dans ce cas, l'entier 65 correspond à la lettre majuscule A .

Sensibilité à la casse

Voici un exemple qui distingue une lettre majuscule de son homologue minuscule :

SELECT 
    CHR(72),
    CHR(104)
FROM DUAL;

Résultat :

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

Renvoyer une chaîne de caractères multiples

Pour produire une chaîne multi-caractères, nous pouvons concaténer plusieurs CHR() fonctions :

Exemple :

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

Résultat :

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

Le NCHAR_CS Argumentation

Voici un exemple de transmission du deuxième argument (facultatif) :

SELECT CHR (257 USING NCHAR_CS)
FROM DUAL;

Résultat :

   CHR(257USINGNCHAR_CS) 
________________________ 
ā                       

C'est la même chose que d'utiliser le NCHR() fonction.

Valeurs nulles

Passer null renvoie null :

SET NULL 'null';

SELECT CHR(null)
FROM DUAL;

Résultat :

   CHR(NULL) 
____________ 
null        

Par défaut, SQLcl et SQL*Plus renvoient un espace vide chaque fois que null se produit à la suite d'un SQL SELECT déclaration.

Cependant, vous pouvez utiliser SET NULL pour spécifier une autre chaîne à renvoyer. Ici, j'ai précisé que la chaîne null doit être retourné.

Nombre d'arguments incorrects

Appel de CHR() sans passer d'argument renvoie une erreur :

SELECT CHR()
FROM DUAL;

Résultat :

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:

Et passer le mauvais nombre d'arguments entraîne une erreur :

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

Résultat :

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: