W MariaDB, OCTET_LENGTH()
jest wbudowaną funkcją łańcuchową, która zwraca długość podanego argumentu łańcuchowego, mierzoną w oktetach (bajtach).
OCTET_LENGTH()
jest synonimem LENGTHB()
.
Jest to również synonim LENGTH()
gdy nie jest w trybie Oracle (LENGTH()
zachowuje się inaczej w trybie Oracle).
Składnia
Składnia wygląda tak:
OCTET_LENGTH(str)
Gdzie str
to ciąg, dla którego zostanie zwrócona długość.
Przykład
Oto podstawowy przykład:
SELECT OCTET_LENGTH('café');
Wynik:
+-----------------------+ | OCTET_LENGTH('café') | +-----------------------+ | 5 | +-----------------------+
W tym przypadku ciąg miał cztery znaki, ale OCTET_LENGTH()
zwrócono 5
. Dzieje się tak, ponieważ ostatni znak używa dwóch oktetów/bajtów.
Porównanie z CHAR_LENGTH()
i BIT_LENGTH()
Oto szybkie porównanie między OCTET_LENGTH()
, CHAR_LENGTH()
(co zwraca liczbę znaków w ciągu) i BIT_LENGTH()
(co zwraca liczbę bitów w ciągu):
SELECT
OCTET_LENGTH('อ'),
CHAR_LENGTH('อ'),
BIT_LENGTH('อ');
Wynik:
+---------------------+--------------------+-------------------+ | OCTET_LENGTH('อ') | CHAR_LENGTH('อ') | BIT_LENGTH('อ') | +---------------------+--------------------+-------------------+ | 3 | 1 | 24 | +---------------------+--------------------+-------------------+
Ten znak tajski (อ
) używa 3 bajtów, a zatem OCTET_LENGTH()
zwraca 3
.
CHAR_LENGTH()
zwraca liczbę znaków (1
) i BIT_LENGTH()
zwraca liczbę bitów (24
).
Nie-Strunowe
Jeśli argument nie jest łańcuchem, jest konwertowany na łańcuch.
Oto kolejny przykład z liczbą:
SELECT OCTET_LENGTH(1234);
Wynik:
+--------------------+ | OCTET_LENGTH(1234) | +--------------------+ | 4 | +--------------------+
Argumenty zerowe
Przekazywanie null
zwraca null
:
SELECT OCTET_LENGTH(null);
Wynik:
+--------------------+ | OCTET_LENGTH(null) | +--------------------+ | NULL | +--------------------+
Brakujący argument
Wywołanie OCTET_LENGTH()
bez przekazania argumentu powoduje błąd:
SELECT OCTET_LENGTH();
Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'OCTET_LENGTH'