Dans Oracle, le NLS_CHARSET_ID()
renvoie le numéro d'identification du jeu de caractères d'un jeu de caractères donné. Vous passez le nom du jeu de caractères en argument et il renvoie son ID.
Syntaxe
La syntaxe ressemble à ceci :
NLS_CHARSET_ID(string)
Où string
est le nom du jeu de caractères dont vous souhaitez renvoyer l'ID.
Exemple
Voici un exemple de base :
SELECT NLS_CHARSET_ID('AL16UTF16')
FROM DUAL;
Résultat :
2000
Le voici avec un jeu de caractères différent :
SELECT NLS_CHARSET_ID('UTF8')
FROM DUAL;
Résultat :
871
Argument nul
Si l'argument est null
, le résultat est null
:
SET NULL 'null';
SELECT NLS_CHARSET_ID(null)
FROM DUAL;
Résultat :
NLS_CHARSET_ID(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é.
Noms de jeux de caractères non valides
Passer un nom de jeu de caractères non valide entraîne null
:
SET NULL 'null';
SELECT NLS_CHARSET_ID('oops')
FROM DUAL;
Résultat :
NLS_CHARSET_ID('OOPS') _________________________ null
Nombre d'arguments incorrects
L'appel de la fonction sans passer d'arguments entraîne une erreur :
SELECT NLS_CHARSET_ID()
FROM DUAL;
Résultat :
Error starting at line : 1 in command - SELECT NLS_CHARSET_ID() 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:
Cependant, la transmission de plusieurs noms de jeux de caractères entraîne le retour de l'ID du premier :
SELECT NLS_CHARSET_ID('UTF8', 'AL16UTF16')
FROM DUAL;
Résultat :
871