LENGTHB |
Longueur en octet |
| Oracle Database SQL |
Oracle 8i ou supérieure |
Syntaxe
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 en octet de la chaîne de caractères spécifié.
Remarques
- LENGTHB est utile dans les environnements multilingues, notamment lorsque les bases de données entreposent des caractères avec des encodages variables (comme UTF-8).
Dans ces cas, un caractère peut occuper plusieurs octets, et LENGTHB permet de mesurer l'espace réel occupé par la chaîne, ce que LENGTH ne montre pas nécessairement.
- La fonction LENGTHB diffère de LENGTH en ce qu'elle mesure les octets, et non les caractères. Cette distinction est cruciale lorsque les chaînes contiennent des
caractères spéciaux ou accentués, qui occupent plus d'un octet selon l'encodage. Par exemple, un caractère Unicode peut valoir 2 à 4 octets.
- LENGTHB retourne NULL si l'entrée est NULL. Cela signifie qu'il ne fait pas de traitement particulier ni de conversion pour une valeur vide ou inexistante, ce qui
est cohérent avec la gestion SQL standard des valeurs NULL.
- Si la chaîne est vide (''), LENGTHB retourne 0. Cela permet de distinguer efficacement une chaîne vide d'une chaîne NULL, ce qui est utile dans les opérations de
validation ou de traitement conditionnel dans les requêtes SQL.
- La fonction est très utilisée dans le contrôle des limites de taille en octets, par exemple pour s'assurer qu'une chaîne n'excède pas la taille maximale d'un
champ VARCHAR2 ou RAW, surtout quand la base utilise un ensemble de caractères multioctets.
- LENGTHB est indispensable lors de la manipulation de colonnes de type RAW ou BLOB, où la notion de "caractère" ne s'applique pas. Elle permet ainsi d'évaluer avec
précision la taille des données binaires.
- Dans les systèmes où le stockage a un coût en octets, comme dans des contextes embarqués ou avec des restrictions réseau, LENGTHB est une fonction essentielle pour
optimiser la gestion de l'espace et anticiper la taille réelle des envois ou des enregistrements.
- LENGTHB est souvent combinée avec la clause WHERE pour filtrer les données selon leur taille réelle en mémoire ou sur disque, ce qui permet, par exemple, de détecter
les anomalies d'entreposages ou les données incomplètes dans une table.
- Dans le contexte des fonctions de chaîne, LENGTHB permet de détecter les décalages de taille introduits par des encodages non homogènes. Cela est particulièrement
important lors d'importations/exportations de données où des conversions d'encodage ont lieu.
- L'utilisation de LENGTHB est recommandée dans les déclencheurs ou validations métiers où la taille binaire des données est critique. Elle permet de s'assurer, avant
insertion ou mise à jour, que la taille physique respecte les contraintes du schéma.
- Même si LENGTHB peut sembler redondante avec LENGTH, elle fournit des informations complémentaires importantes dans les bases configurées avec des ensembles de
caractères différents de AL32UTF8, où un caractère peut ne pas équivaloir à un octet.
- La précision offerte par LENGTHB est aussi précieuse dans les procédures stockées et les scripts PL/SQL, où les calculs de taille doivent refléter la réalité
physique pour éviter les dépassements ou erreurs de type ORA-12899.
Voir également
Article - Les géants de l'informatique - Oracle
Dernière mise à jour : Lundi, le 11 mai 2015