I MariaDB, OCTET_LENGTH()
er en indbygget strengfunktion, der returnerer længden af det givne strengargument, målt i oktetter (bytes).
OCTET_LENGTH()
er et synonym for LENGTHB()
.
Det er også et synonym for LENGTH()
når den ikke er i Oracle-tilstand (LENGTH()
opfører sig anderledes i Oracle-tilstand).
Syntaks
Syntaksen ser sådan ud:
OCTET_LENGTH(str)
Hvor str
er den streng, som længden vil blive returneret for.
Eksempel
Her er et grundlæggende eksempel:
SELECT OCTET_LENGTH('café');
Resultat:
+-----------------------+ | OCTET_LENGTH('café') | +-----------------------+ | 5 | +-----------------------+
I dette tilfælde var strengen fire tegn lang, men OCTET_LENGTH()
returnerede 5
. Dette skyldes, at det sidste tegn bruger to oktetter/bytes.
Sammenligning med CHAR_LENGTH()
og BIT_LENGTH()
Her er en hurtig sammenligning mellem OCTET_LENGTH()
, CHAR_LENGTH()
(som returnerer antallet af tegn i strengen) og BIT_LENGTH()
(som returnerer antallet af bits i strengen):
SELECT
OCTET_LENGTH('อ'),
CHAR_LENGTH('อ'),
BIT_LENGTH('อ');
Resultat:
+---------------------+--------------------+-------------------+ | OCTET_LENGTH('อ') | CHAR_LENGTH('อ') | BIT_LENGTH('อ') | +---------------------+--------------------+-------------------+ | 3 | 1 | 24 | +---------------------+--------------------+-------------------+
Dette thailandske tegn (อ
) bruger 3 bytes, og derfor OCTET_LENGTH()
returnerer 3
.
CHAR_LENGTH()
returnerer antallet af tegn (1
), og BIT_LENGTH()
returnerer antallet af bit (24
).
Ikke-strenge
Hvis argumentet ikke er en streng, konverteres det til en streng.
Her er et andet eksempel, der bruger et tal:
SELECT OCTET_LENGTH(1234);
Resultat:
+--------------------+ | OCTET_LENGTH(1234) | +--------------------+ | 4 | +--------------------+
Nul-argumenter
Sender null
returnerer null
:
SELECT OCTET_LENGTH(null);
Resultat:
+--------------------+ | OCTET_LENGTH(null) | +--------------------+ | NULL | +--------------------+
Manglende argument
Kalder OCTET_LENGTH()
uden at sende et argument resulterer i en fejl:
SELECT OCTET_LENGTH();
Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'OCTET_LENGTH'