NLSSORT |
Tri national |
| Oracle Database SQL |
Oracle 9i Release 2 (9.2) ou supérieure |
Syntaxe
|
NLSSORT(char [, 'nlsparam' ])
|
Paramètres
| Nom |
Description |
| char |
Ce paramètre permet d'indiquer la chaîne de caractères à convertir en représentation binaire, en vue d'un tri ou d'une comparaison basée sur une collation spécifique. |
| 'nlsparam' |
Ce paramètre permet de spécifier les paramètres linguistiques NLS, comme NLS_SORT ou NLS_COMP, influençant la manière dont la chaîne est triée. Il est optionnel et prend la forme d'une chaîne de format 'NLS_SORT=langue' (ex. 'NLS_SORT=FRENCH'). |
Description
Cette fonction permet de retourner la représentation binaire d'une chaîne de caractères selon une collation NLS spécifiée. Elle est souvent utilisée pour trier ou comparer des chaînes de manière sensible à la langue ou à la casse.
Remarques
- La fonction NLSSORT est particulièrement utile pour les comparaisons linguistiques. Plutôt que de comparer directement deux chaînes de texte, elle convertit
chaque chaîne en une représentation binaire ordonnée selon les règles de tri linguistique, ce qui permet un tri fidèle à la langue spécifiée.
- Lorsque l'on souhaite trier des chaînes contenant des caractères accentués, l'utilisation de NLSSORT garantit que l'ordre respecte les conventions culturelles locales.
Par exemple, en français, les lettres accentuées comme "é" ou "è" seront correctement positionnées, contrairement à un tri purement binaire.
- Le second paramètre 'nlsparam' permet de spécifier la collation linguistique utilisée. Cela rend la fonction très flexible, car on peut trier une même colonne selon
différents critères linguistiques en changeant simplement cette option, sans modifier les données elles-mêmes.
- NLSSORT est souvent combinée avec la clause ORDER BY pour un tri personnalisé. Par exemple, au lieu de faire ORDER BY nom, on peut écrire ORDER BY
NLSSORT(nom, 'NLS_SORT=GERMAN') afin de trier une liste selon les conventions allemandes.
- En l'absence du paramètre 'nlsparam', Oracle utilise la valeur de session de NLS_SORT. Cela signifie que le comportement de la fonction peut changer dynamiquement
si la session Oracle modifie ses préférences linguistiques, ce qui offre souplesse mais demande de la vigilance.
- Cette fonction est utile dans les contextes multilingues où plusieurs utilisateurs peuvent interagir avec les mêmes données dans différentes langues. Elle permet
d'adapter dynamiquement le tri aux attentes culturelles de chacun, en utilisant les paramètres NLS adéquats.
- Bien que la fonction retourne une valeur de type RAW, celle-ci n'est pas destinée à être affichée directement. Elle sert plutôt d'élément de comparaison dans les
requêtes SQL, car sa représentation binaire encode le poids de tri selon la collation choisie.
- NLSSORT peut être combinée avec les fonctions NLS_UPPER, NLS_LOWER ou NLS_INITCAP pour assurer un tri ou une recherche insensible à la casse, tout en respectant
la langue. Cela permet des traitements textuels plus cohérents avec les habitudes locales.
- Dans les bases de données contenant des données internationales, NLSSORT améliore la précision des tris, évitant les incohérences fréquentes avec les méthodes de
tri ASCII ou Unicode par défaut, notamment pour les caractères non latins.
- Il est important de s'assurer que les noms de collation spécifiés dans 'nlsparam' sont valides. Si une collation non reconnue est utilisée, Oracle renverra une
erreur. Une vérification préalable à l'aide de vues comme V$NLS_VALID_VALUES peut être utile.
- L'utilisation de NLSSORT dans les index peut affecter les performances. Comme elle génère des représentations binaires calculées dynamiquement, cela peut ralentir
certaines requêtes si des index fonctionnels ne sont pas prévus pour cette fonction.
- Dans certains cas, NLSSORT est aussi utilisée pour des opérations de recherche insensible à la casse et aux accents. Par exemple, on peut comparer deux chaînes
avec WHERE NLSSORT(col1, 'NLS_SORT=FRENCH_AI') = NLSSORT(:valeur, 'NLS_SORT=FRENCH_AI') pour neutraliser les différences de casse et d'accentuation.
Dernière mise à jour : Dimanche, le 29 Juin 2025