LENGTH |
Longueur |
|---|---|
| Oracle Database SQL |
Syntaxe
| length(Chaine) |
Paramètres
| Nom | Description |
|---|---|
| Chaine | Ce paramètre permet d'indiquer l'expression contenant la chaîne de caractères à calculer la longueur |
Retour
| Valeur | Description |
|---|---|
| NULL | Cette valeur permet d'indiquer que la valeur est nulle. |
| 0 | Cette valeur permet d'indiquer que la chaîne de caractères est vide. |
| 1 ou supérieur | Ces valeurs permettent d'indiquer la longueur de la chaîne de caractères. |
Description
Cette fonction permet de retourner la longueur de la chaîne de caractères spécifiés.
Remarques
- Fonction essentielle pour le traitement de chaînes de caractères : La fonction LENGTH(chaine) est fondamentale dans le traitement des données textuelles dans Oracle SQL. Elle permet de connaître le nombre de caractères d'une chaîne, ce qui est utile pour la validation, le formatage ou les recherches dans les bases de données. C'est l'une des fonctions les plus couramment utilisées dans les requêtes de manipulation de texte.
- La fonction retourne un entier positif ou zéro : LENGTH retourne un entier numérique représentant la longueur de la chaîne de caractères fournie. Si la chaîne de caractères est vide (''), elle retourne 0. Cela peut être utile pour détecter les champs renseignés ou non, ou pour distinguer une chaîne vide d'une chaîne nulle (NULL), retournant un résultat différent.
- Différence entre NULL et chaîne de caractères vide : Si la valeur passée à LENGTH est NULL, la fonction retourne également NULL, et non 0. Il est donc essentiel de distinguer une chaîne de caractères vide d'une valeur nulle dans les traitements SQL. Pour éviter les erreurs, on peut combiner LENGTH avec NVL ou COALESCE afin de forcer un comportement particulier (exemple : LENGTH(NVL(ma_colonne, ''))).
- Caractères multioctets et NLS_LENGTH_SEMANTICS : La fonction LENGTH compte par caractère, pas par octet, sauf si vous utilisez des ensembles de caractères multioctets. Oracle offre une option NLS_LENGTH_SEMANTICS pour choisir si les longueurs de chaînes doivent être mesurées en caractères ou en octets, ce qui a un impact dans les environnements multilingues.
- Utilisation dans les clauses WHERE pour la validation : On peut utiliser LENGTH dans une clause WHERE pour filtrer les lignes selon la longueur d'un champ texte. Par exemple : WHERE LENGTH(nom_utilisateur) > 10. Cela permet d'imposer des contraintes implicites sur les données ou de détecter des anomalies de saisie dans une base existante.
- Attention aux espaces invisibles : LENGTH tient compte des espaces présents dans la chaîne de caractères, même s'ils ne sont pas visibles. Par exemple, la chaîne de caractères 'abc ' aura une longueur de 4. Il est donc utile d'utiliser TRIM ou RTRIM/LTRIM pour nettoyer les chaînes de caractères avant de mesurer leur longueur si nécessaire.
- Peut être combinée à d'autres fonctions SQL : LENGTH s'utilise souvent avec d'autres fonctions comme SUBSTR, INSTR, ou REGEXP_SUBSTR pour faire des traitements complexes. Par exemple, SUBSTR(ma_chaine, LENGTH(ma_chaine) - 3) permet de récupérer les quatre derniers caractères d'une chaîne de caractères. Cela démontre sa polyvalence dans le traitement de texte.
- Utilisation possible dans les expressions CASE : La fonction LENGTH peut être utilisée dans une expression CASE pour adapter un traitement en fonction de la longueur. Par exemple :
- CASE WHEN LENGTH(nom) > 20 THEN 'Trop long' ELSE 'OK' END
Cela permet une gestion dynamique des erreurs ou des messages d'alerte dans des requêtes complexes.
Exemple
Voici quelques exemples typiques de l'utilisation de cette fonction :
on obtiendra le résultat suivant :
| Text | Result |
| LONGUEUR('Bonjour')= | 7 |
| LONGUEUR('message')= | 7 |
| LONGUEUR('Bonjour'+'message')= | 14 |
Voir également
Article - Les géants de l'informatique - Oracle
Dernière mise à jour : Lundi, le 11 mai 2015