I MariaDB, OCTET_LENGTH()
är en inbyggd strängfunktion som returnerar längden på det givna strängargumentet, mätt i oktetter (byte).
OCTET_LENGTH()
är en synonym för LENGTHB()
.
Det är också en synonym för LENGTH()
när den inte är i Oracle-läge (LENGTH()
beter sig annorlunda i Oracle-läge).
Syntax
Syntaxen ser ut så här:
OCTET_LENGTH(str)
Där str
är strängen för vilken längden kommer att returneras.
Exempel
Här är ett grundläggande exempel:
SELECT OCTET_LENGTH('café');
Resultat:
+-----------------------+ | OCTET_LENGTH('café') | +-----------------------+ | 5 | +-----------------------+
I det här fallet var strängen fyra tecken lång, men OCTET_LENGTH()
returnerade 5
. Detta beror på att det sista tecknet använder två oktetter/byte.
Jämförelse med CHAR_LENGTH()
och BIT_LENGTH()
Här är en snabb jämförelse mellan OCTET_LENGTH()
, CHAR_LENGTH()
(som returnerar antalet tecken i strängen) och BIT_LENGTH()
(som returnerar antalet bitar i strängen):
SELECT
OCTET_LENGTH('อ'),
CHAR_LENGTH('อ'),
BIT_LENGTH('อ');
Resultat:
+---------------------+--------------------+-------------------+ | OCTET_LENGTH('อ') | CHAR_LENGTH('อ') | BIT_LENGTH('อ') | +---------------------+--------------------+-------------------+ | 3 | 1 | 24 | +---------------------+--------------------+-------------------+
Detta thailändska tecken (อ
) använder 3 byte, och därför OCTET_LENGTH()
returnerar 3
.
CHAR_LENGTH()
returnerar antalet tecken (1
), och BIT_LENGTH()
returnerar antalet bitar (24
).
Icke-strängar
Om argumentet inte är en sträng, konverteras det till en sträng.
Här är ett annat exempel som använder ett nummer:
SELECT OCTET_LENGTH(1234);
Resultat:
+--------------------+ | OCTET_LENGTH(1234) | +--------------------+ | 4 | +--------------------+
Nollargument
Skickar null
returnerar null
:
SELECT OCTET_LENGTH(null);
Resultat:
+--------------------+ | OCTET_LENGTH(null) | +--------------------+ | NULL | +--------------------+
Argument saknas
Anropar OCTET_LENGTH()
utan att skicka ett argument resulterar det i ett fel:
SELECT OCTET_LENGTH();
Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'OCTET_LENGTH'