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'