V MariaDB, OCTET_LENGTH()
je vestavěná řetězcová funkce, která vrací délku daného řetězcového argumentu měřenou v oktetech (bajtech).
OCTET_LENGTH()
je synonymem pro LENGTHB()
.
Je to také synonymum pro LENGTH()
když není v režimu Oracle (LENGTH()
se v režimu Oracle chová jinak).
Syntaxe
Syntaxe vypadá takto:
OCTET_LENGTH(str)
Kde str
je řetězec, pro který bude vrácena délka.
Příklad
Zde je základní příklad:
SELECT OCTET_LENGTH('café');
Výsledek:
+-----------------------+ | OCTET_LENGTH('café') | +-----------------------+ | 5 | +-----------------------+
V tomto případě byl řetězec dlouhý čtyři znaky, ale OCTET_LENGTH()
vrátil 5
. Důvodem je, že poslední znak používá dva oktety/bajty.
Porovnání s CHAR_LENGTH()
a BIT_LENGTH()
Zde je rychlé srovnání mezi OCTET_LENGTH()
, CHAR_LENGTH()
(což vrátí počet znaků v řetězci) a BIT_LENGTH()
(což vrací počet bitů v řetězci):
SELECT
OCTET_LENGTH('อ'),
CHAR_LENGTH('อ'),
BIT_LENGTH('อ');
Výsledek:
+---------------------+--------------------+-------------------+ | OCTET_LENGTH('อ') | CHAR_LENGTH('อ') | BIT_LENGTH('อ') | +---------------------+--------------------+-------------------+ | 3 | 1 | 24 | +---------------------+--------------------+-------------------+
Tento thajský znak (อ
) používá 3 bajty, a proto OCTET_LENGTH()
vrátí 3
.
CHAR_LENGTH()
vrátí počet znaků (1
) a BIT_LENGTH()
vrátí počet bitů (24
).
Neřetězcové
Pokud argument není řetězec, převede se na řetězec.
Zde je další příklad, který používá číslo:
SELECT OCTET_LENGTH(1234);
Výsledek:
+--------------------+ | OCTET_LENGTH(1234) | +--------------------+ | 4 | +--------------------+
Nulové argumenty
Předávání null
vrátí null
:
SELECT OCTET_LENGTH(null);
Výsledek:
+--------------------+ | OCTET_LENGTH(null) | +--------------------+ | NULL | +--------------------+
Chybí argument
Volání OCTET_LENGTH()
bez předání argumentu dojde k chybě:
SELECT OCTET_LENGTH();
Výsledek:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'OCTET_LENGTH'