Dans MariaDB, OCTET_LENGTH() est une fonction de chaîne intégrée qui renvoie la longueur de l'argument de chaîne donné, mesurée en octets (octets).
OCTET_LENGTH() est un synonyme de LENGTHB() .
C'est aussi un synonyme de LENGTH() hors mode Oracle (LENGTH() se comporte différemment en mode Oracle).
Syntaxe
La syntaxe ressemble à ceci :
OCTET_LENGTH(str)
Où str est la chaîne dont la longueur sera renvoyée.
Exemple
Voici un exemple de base :
SELECT OCTET_LENGTH('café'); Résultat :
+-----------------------+
| OCTET_LENGTH('café') |
+-----------------------+
| 5 |
+-----------------------+
Dans ce cas, la chaîne comportait quatre caractères, mais OCTET_LENGTH() a renvoyé 5 . C'est parce que le dernier caractère utilise deux octets/octets.
Comparaison avec CHAR_LENGTH() et BIT_LENGTH()
Voici une comparaison rapide entre OCTET_LENGTH() , CHAR_LENGTH() (qui renvoie le nombre de caractères dans la chaîne) et BIT_LENGTH() (qui retourne le nombre de bits dans la chaîne):
SELECT
OCTET_LENGTH('อ'),
CHAR_LENGTH('อ'),
BIT_LENGTH('อ'); Résultat :
+---------------------+--------------------+-------------------+
| OCTET_LENGTH('อ') | CHAR_LENGTH('อ') | BIT_LENGTH('อ') |
+---------------------+--------------------+-------------------+
| 3 | 1 | 24 |
+---------------------+--------------------+-------------------+
Ce caractère thaï (อ ) utilise 3 octets, et donc OCTET_LENGTH() renvoie 3 .
CHAR_LENGTH() renvoie le nombre de caractères (1 ), et BIT_LENGTH() renvoie le nombre de bits (24 ).
Non-chaînes
Si l'argument n'est pas une chaîne, il est converti en chaîne.
Voici un autre exemple qui utilise un nombre :
SELECT OCTET_LENGTH(1234); Résultat :
+--------------------+ | OCTET_LENGTH(1234) | +--------------------+ | 4 | +--------------------+
Arguments nuls
Passer null renvoie null :
SELECT OCTET_LENGTH(null); Résultat :
+--------------------+ | OCTET_LENGTH(null) | +--------------------+ | NULL | +--------------------+
Argument manquant
Appel de OCTET_LENGTH() sans passer d'argument génère une erreur :
SELECT OCTET_LENGTH(); Résultat :
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'OCTET_LENGTH'