No MariaDB,
OCTET_LENGTH()
é uma função de string interna que retorna o comprimento do argumento de string fornecido, medido em octetos (bytes). OCTET_LENGTH()
é um sinônimo para LENGTHB()
. Também é sinônimo de
LENGTH()
quando não estiver no modo Oracle (LENGTH()
se comporta de maneira diferente no modo Oracle). Sintaxe
A sintaxe fica assim:
OCTET_LENGTH(str)
Onde
str
é a string para a qual o comprimento será retornado. Exemplo
Segue um exemplo básico:
SELECT OCTET_LENGTH('café');
Resultado:
+-----------------------+ | OCTET_LENGTH('café') | +-----------------------+ | 5 | +-----------------------+
Nesse caso, a string tinha quatro caracteres, mas
OCTET_LENGTH()
retornou 5
. Isso ocorre porque o último caractere usa dois octetos/bytes. Comparação com CHAR_LENGTH()
e BIT_LENGTH()
Aqui está uma comparação rápida entre
OCTET_LENGTH()
, CHAR_LENGTH()
(que retorna o número de caracteres na string) e BIT_LENGTH()
(que retorna o número de bits na cadeia):SELECT
OCTET_LENGTH('อ'),
CHAR_LENGTH('อ'),
BIT_LENGTH('อ');
Resultado:
+---------------------+--------------------+-------------------+ | OCTET_LENGTH('อ') | CHAR_LENGTH('อ') | BIT_LENGTH('อ') | +---------------------+--------------------+-------------------+ | 3 | 1 | 24 | +---------------------+--------------------+-------------------+
Este caractere tailandês (
อ
) usa 3 bytes e, portanto, OCTET_LENGTH()
retorna 3
. CHAR_LENGTH()
retorna o número de caracteres (1
) e BIT_LENGTH()
retorna o número de bits (24
). Não-Strings
Se o argumento não for uma string, ele será convertido em uma string.
Aqui está outro exemplo que usa um número:
SELECT OCTET_LENGTH(1234);
Resultado:
+--------------------+ | OCTET_LENGTH(1234) | +--------------------+ | 4 | +--------------------+
Argumentos nulos
Passando
null
retorna null
:SELECT OCTET_LENGTH(null);
Resultado:
+--------------------+ | OCTET_LENGTH(null) | +--------------------+ | NULL | +--------------------+
Argumento ausente
Chamando
OCTET_LENGTH()
sem passar um argumento resulta em um erro:SELECT OCTET_LENGTH();
Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'OCTET_LENGTH'