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'