Dans Oracle Database, le NLS_COLLATION_NAME()
La fonction renvoie le nom d'un classement donné, en fonction de son ID. Vous transmettez l'ID de collation lors de l'appel de la fonction, et elle renvoie le nom de la collation.
Syntaxe
La syntaxe ressemble à ceci :
NLS_COLLATION_NAME(expr [, flag ])
Où expr
est l'ID de classement de type NUMBER
.
Le flag
argument est un argument facultatif qui s'applique uniquement aux classements Unicode Collation Algorithm (UCA). Il détermine si la fonction doit renvoyer la forme courte ou la forme longue du nom de classement.
Le flag
l'argument peut être l'un des suivants :
Signal | Description |
---|---|
'S' ou 's' | Renvoie la forme abrégée du nom de la collation. |
'L' ou 'l' | Renvoie la forme longue du nom de la collation. |
La valeur par défaut de cet indicateur est 'L'
.
Exemple
Voici un exemple de base :
SELECT NLS_COLLATION_NAME(70)
FROM DUAL;
Résultat :
XAZERBAIJANI
Voici d'autres exemples :
SELECT
NLS_COLLATION_NAME(4112) AS "1",
NLS_COLLATION_NAME(4116) AS "2"
FROM DUAL;
Résultat :
1 2 ___________ _____________ FRENCH_M CANADIAN_M
Drapeau forme longue/courte
Comme mentionné, nous pouvons passer un indicateur facultatif pour déterminer s'il faut retourner la forme courte ou la forme longue du nom de classement.
SELECT
NLS_COLLATION_NAME(208920, 'L') AS "Long",
NLS_COLLATION_NAME(208920, 'S') AS "Short"
FROM DUAL;
Résultat :
Long Short __________________________________________ _______________ UCA0620_THAI_S4_VS_BN_NY_EN_FN_HN_DN_MN UCA0620_THAI
La valeur par défaut de cet indicateur est 'L'
. Ainsi, si nous omettons le drapeau, la forme longue est renvoyée :
SELECT
NLS_COLLATION_NAME(208920) AS "Default"
FROM DUAL;
Résultat :
Default __________________________________________ UCA0620_THAI_S4_VS_BN_NY_EN_FN_HN_DN_MN
Cependant, cet indicateur ne s'applique qu'aux classements Unicode Collation Algorithm (UCA).
Si nous appliquons l'indicateur à un classement non-UCA, nous ne voyons aucune différence :
SELECT
NLS_COLLATION_NAME(4112, 'L') AS "1",
NLS_COLLATION_NAME(4112, 'S') AS "2"
FROM DUAL;
Résultat :
1 2 ___________ ___________ FRENCH_M FRENCH_M
Collation invalide
La transmission d'un nom de classement non valide entraîne null
:
SET NULL 'null';
SELECT NLS_COLLATION_NAME(4113)
FROM DUAL;
Résultat :
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é.
Argument nul
Passer null
renvoie null
:
SET NULL 'null';
SELECT NLS_COLLATION_NAME(null)
FROM DUAL;
Résultat :
null
Nombre d'arguments incorrects
L'appel de la fonction sans passer d'arguments entraîne une erreur :
SELECT NLS_COLLATION_NAME()
FROM DUAL;
Résultat :
Error starting at line : 1 in command - SELECT NLS_COLLATION_NAME() 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 trop d'arguments entraîne également une erreur :
SELECT NLS_COLLATION_NAME(4112, 'S', 'L')
FROM DUAL;
Résultat :
Error starting at line : 1 in command - SELECT NLS_COLLATION_NAME(4112, 'S', 'L') FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00939: too many arguments for function 00939. 00000 - "too many arguments for function" *Cause: *Action: