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'