sql >> Base de Datos >  >> RDS >> MariaDB

Cómo funciona OCTET_LENGTH() en MariaDB

En MariaDB, OCTET_LENGTH() es una función de cadena incorporada que devuelve la longitud del argumento de cadena dado, medida en octetos (bytes).

OCTET_LENGTH() es un sinónimo de LENGTHB() .

También es sinónimo de LENGTH() cuando no está en modo Oracle (LENGTH() se comporta de manera diferente en el modo Oracle).

Sintaxis

La sintaxis es así:

OCTET_LENGTH(str)

Donde str es la cadena para la que se devolverá la longitud.

Ejemplo

He aquí un ejemplo básico:

SELECT OCTET_LENGTH('café');

Resultado:

+-----------------------+
| OCTET_LENGTH('café')  |
+-----------------------+
|                     5 |
+-----------------------+

En este caso, la cadena tenía cuatro caracteres, pero OCTET_LENGTH() devolvió 5 . Esto se debe a que el último carácter usa dos octetos/bytes.

Comparación con CHAR_LENGTH() y BIT_LENGTH()

Aquí hay una comparación rápida entre OCTET_LENGTH() , CHAR_LENGTH() (que devuelve el número de caracteres en la cadena) y BIT_LENGTH() (que devuelve el número de bits en la cadena):

SELECT 
    OCTET_LENGTH('อ'),
    CHAR_LENGTH('อ'),
    BIT_LENGTH('อ');

Resultado:

+---------------------+--------------------+-------------------+
| OCTET_LENGTH('อ')   | CHAR_LENGTH('อ')   | BIT_LENGTH('อ')   |
+---------------------+--------------------+-------------------+
|                   3 |                  1 |                24 |
+---------------------+--------------------+-------------------+

Este carácter tailandés ( ) utiliza 3 bytes y, por lo tanto, OCTET_LENGTH() devuelve 3 .

CHAR_LENGTH() devuelve el número de caracteres (1 ), y BIT_LENGTH() devuelve el número de bits (24 ).

Sin cadenas

Si el argumento no es una cadena, se convierte en una cadena.

Aquí hay otro ejemplo que usa un número:

SELECT OCTET_LENGTH(1234);

Resultado:

+--------------------+
| OCTET_LENGTH(1234) |
+--------------------+
|                  4 |
+--------------------+

Argumentos nulos

Pasando null devuelve null :

SELECT OCTET_LENGTH(null);

Resultado:

+--------------------+
| OCTET_LENGTH(null) |
+--------------------+
|               NULL |
+--------------------+

Argumento faltante

Llamando a OCTET_LENGTH() sin pasar un argumento da como resultado un error:

SELECT OCTET_LENGTH();

Resultado:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'OCTET_LENGTH'