Classement basé sur l'UCA en fonction de l'environnement local
Les classements sensibles à l'environnement local sont basés sur la spécification UCA (Unicode Collation Algorithm) complète et fournissent une exactitude culturelle complète.
Les chaînes sont classées en fonction de l'algorithme de classement Unicode. Le classement peut être personnalisé pour prendre en compte des fonctions telles que la langue ou la casse et l'insensibilité à l'accent. Pour plus d'informations sur UCA, voir Collations basées sur un algorithme de classement Unicode.
Cet algorithme utilise plusieurs pondérations par caractère ainsi qu'un traitement supplémentaire pour gérer des cas spéciaux tels que les contractions et la combinaison d'accents. La complexité de l'algorithme augmente considérablement le temps de traitement.
La mise en correspondance des sous-chaînes est effectuée à l'aide du classement. Les sous-chaînes sont mises en correspondance de manière linguistiquement significative.
- Avantages
- Soutien total de l'UCA, y compris les contractions et la combinaison des accents.
- Prend en charge les classements insensibles à la casse et à l'accent.
- Gère tous les points de code Unicode.
- Permet de personnaliser les classements en fonction des différentes langues.
- Même ordre pour les types de caractères et de graphiques.
- La mise en correspondance des sous-chaînes est effectuée à l'aide du classement.
- Inconvénients
- Une pénalité de performance importante.
Les classements basés sur l'UCA en fonction de l'environnement local conviennent lorsque l'ordre linguistique complet est nécessaire et que le temps supplémentaire requis pour les performances peut être toléré.
Exemples
La base de données avec le classement dépendant de l'environnement local a été créée à l'aide de la commande suivante: CREATE DATABASE TESTDB COLLATE
USING CLDR181_LCS.
Tri:
SELECT WORD FROM TESTDATA ORDER BY WORD
WORD
----------
cena
čas
c◌̌as
Čech
C◌̌ech
hlava
holub
chleb
Jana
jaro
Jaroslav
- Le résultat est linguistiquement correct.
- Les différences de casse et d'accent sont traitées comme moins importantes que le caractère de base.
- Les accents de combinaison sont égaux au caractère accentué équivalent.
- Le mot chleb est correctement classé après le mot holub.
Correspondance de sous-chaîne:
SELECT WORD FROM TESTDATA WHERE WORD LIKE 'c%'
WORD
----------
cena
- Ni c??? ??? as ni chleb ne sont sélectionnés, car linguistiquement, ils ne commencent pas par la lettre c.