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'