Dans Oracle Database, le COLLATION()
renvoie le nom de la collation dérivée pour son argument.
Syntaxe
La syntaxe ressemble à ceci :
COLLATION(expr)
Où expr
doit correspondre à une chaîne de caractères de type CHAR
, VARCHAR2
, LONG
, NCHAR
, ou NVARCHAR2
.
Exemple
Voici un exemple de base :
SELECT COLLATION('Boat')
FROM DUAL;
Résultat :
USING_NLS_COMP
Exemple avec le COLLATE
Article
Voici ce qui se passe lorsque nous utilisons le COLLATE
clause pour spécifier explicitement le classement :
SELECT COLLATION('Boat' COLLATE LATIN_AI)
FROM DUAL;
Résultat :
LATIN_AI
Considération lors de l'utilisation de NLS_SORT
Le COLLATION()
renvoie uniquement le classement lié aux données, et non le classement dynamique défini par NLS_SORT
paramètre.
Exemple :
SELECT COLLATION('Boat' COLLATE USING_NLS_SORT)
FROM DUAL;
Résultat :
USING_NLS_SORT
Vous pouvez utiliser le SYS_CONTEXT()
fonction pour retourner la valeur du NLS_SORT
paramètre :
SELECT SYS_CONTEXT('USERENV','NLS_SORT')
FROM DUAL;
Résultat :
BINARY
Cependant, tout suffixe tel que _CI
, _AI
, et _CS
est renvoyé :
SELECT
COLLATION('Boat' COLLATE USING_NLS_SORT_CI) AS "_CI",
COLLATION('Boat' COLLATE USING_NLS_SORT_CS) AS "_CS",
COLLATION('Boat' COLLATE USING_NLS_SORT_AI) AS "_AI"
FROM DUAL;
Résultat :
_CI _CS _AI ____________________ ____________________ ____________________ USING_NLS_SORT_CI USING_NLS_SORT_CS USING_NLS_SORT_AI
Argument nul
La collation est retournée, même en passant null
:
SELECT COLLATION(null)
FROM DUAL;
Résultat :
USING_NLS_COMP
Nombre d'arguments incorrects
L'appel de la fonction sans passer d'arguments entraîne une erreur :
SELECT COLLATION()
FROM DUAL;
Résultat :
Error starting at line : 1 in command - SELECT COLLATION() 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:
Et passer trop d'arguments entraîne également une erreur :
SELECT COLLATION('Boat', 'Dang')
FROM DUAL;
Résultat :
Error starting at line : 1 in command - SELECT COLLATION('Boat', 'Dang') 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: