In MariaDB, OCTET_LENGTH()
is een ingebouwde tekenreeksfunctie die de lengte van het gegeven tekenreeksargument retourneert, gemeten in octetten (bytes).
OCTET_LENGTH()
is een synoniem voor LENGTHB()
.
Het is ook een synoniem voor LENGTH()
wanneer niet in Oracle-modus (LENGTH()
gedraagt zich anders in Oracle-modus).
Syntaxis
De syntaxis gaat als volgt:
OCTET_LENGTH(str)
Waar str
is de tekenreeks waarvoor de lengte wordt geretourneerd.
Voorbeeld
Hier is een eenvoudig voorbeeld:
SELECT OCTET_LENGTH('café');
Resultaat:
+-----------------------+ | OCTET_LENGTH('café') | +-----------------------+ | 5 | +-----------------------+
In dit geval was de tekenreeks vier tekens lang, maar OCTET_LENGTH()
5
geretourneerd . Dit komt omdat het laatste teken twee octetten/bytes gebruikt.
Vergelijking met CHAR_LENGTH()
en BIT_LENGTH()
Hier is een snelle vergelijking tussen OCTET_LENGTH()
, CHAR_LENGTH()
(wat het aantal tekens retourneert in de string) en BIT_LENGTH()
(wat het aantal bits retourneert in de string):
SELECT
OCTET_LENGTH('อ'),
CHAR_LENGTH('อ'),
BIT_LENGTH('อ');
Resultaat:
+---------------------+--------------------+-------------------+ | OCTET_LENGTH('อ') | CHAR_LENGTH('อ') | BIT_LENGTH('อ') | +---------------------+--------------------+-------------------+ | 3 | 1 | 24 | +---------------------+--------------------+-------------------+
Dit Thaise karakter (อ
) gebruikt 3 bytes, en daarom OCTET_LENGTH()
retourneert 3
.
CHAR_LENGTH()
geeft het aantal tekens terug (1
), en BIT_LENGTH()
geeft het aantal bits terug (24
).
Niet-strings
Als het argument geen string is, wordt het geconverteerd naar een string.
Hier is nog een voorbeeld dat een getal gebruikt:
SELECT OCTET_LENGTH(1234);
Resultaat:
+--------------------+ | OCTET_LENGTH(1234) | +--------------------+ | 4 | +--------------------+
Nullargumenten
Doorgeven van null
retourneert null
:
SELECT OCTET_LENGTH(null);
Resultaat:
+--------------------+ | OCTET_LENGTH(null) | +--------------------+ | NULL | +--------------------+
Ontbrekend argument
Aanroepen van OCTET_LENGTH()
zonder een argument door te geven resulteert in een fout:
SELECT OCTET_LENGTH();
Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'OCTET_LENGTH'