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'