In MariaDB, OCTET_LENGTH() è una funzione stringa incorporata che restituisce la lunghezza dell'argomento stringa specificato, misurata in ottetti (byte).
OCTET_LENGTH() è sinonimo di LENGTHB() .
È anche sinonimo di LENGTH() quando non in modalità Oracle (LENGTH() si comporta diversamente in modalità Oracle).
Sintassi
La sintassi è questa:
OCTET_LENGTH(str)
Dove str è la stringa per la quale verrà restituita la lunghezza.
Esempio
Ecco un esempio di base:
SELECT OCTET_LENGTH('café'); Risultato:
+-----------------------+
| OCTET_LENGTH('café') |
+-----------------------+
| 5 |
+-----------------------+
In questo caso, la stringa era lunga quattro caratteri, ma OCTET_LENGTH() restituito 5 . Questo perché l'ultimo carattere utilizza due ottetti/byte.
Confronto con CHAR_LENGTH() e BIT_LENGTH()
Ecco un rapido confronto tra OCTET_LENGTH() , CHAR_LENGTH() (che restituisce il numero di caratteri nella stringa) e BIT_LENGTH() (che restituisce il numero di bit nella stringa):
SELECT
OCTET_LENGTH('อ'),
CHAR_LENGTH('อ'),
BIT_LENGTH('อ'); Risultato:
+---------------------+--------------------+-------------------+
| OCTET_LENGTH('อ') | CHAR_LENGTH('อ') | BIT_LENGTH('อ') |
+---------------------+--------------------+-------------------+
| 3 | 1 | 24 |
+---------------------+--------------------+-------------------+
Questo carattere tailandese (อ ) utilizza 3 byte, e quindi OCTET_LENGTH() restituisce 3 .
CHAR_LENGTH() restituisce il numero di caratteri (1 ), e BIT_LENGTH() restituisce il numero di bit (24 ).
Non stringhe
Se l'argomento non è una stringa, viene convertito in una stringa.
Ecco un altro esempio che utilizza un numero:
SELECT OCTET_LENGTH(1234); Risultato:
+--------------------+ | OCTET_LENGTH(1234) | +--------------------+ | 4 | +--------------------+
Argomenti nulli
Passaggio null restituisce null :
SELECT OCTET_LENGTH(null); Risultato:
+--------------------+ | OCTET_LENGTH(null) | +--------------------+ | NULL | +--------------------+
Argomento mancante
Chiamando OCTET_LENGTH() senza passare un argomento si ottiene un errore:
SELECT OCTET_LENGTH(); Risultato:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'OCTET_LENGTH'