MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

Como OCTET_LENGTH() funciona no MariaDB


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'