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'