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'