MariaDB
 sql >> Base de données >  >> RDS >> MariaDB

Comment fonctionne OCTET_LENGTH() dans MariaDB

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)

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'