В MariaDB, OCTET_LENGTH()
е вградена низова функция, която връща дължината на дадения низ аргумент, измерена в октети (байтове).
OCTET_LENGTH()
е синоним на LENGTHB()
.
Това също е синоним на LENGTH()
когато не е в режим на Oracle (LENGTH()
се държи различно в режим на Oracle).
Синтаксис
Синтаксисът е така:
OCTET_LENGTH(str)
Където str
е низът, за който ще бъде върната дължината.
Пример
Ето един основен пример:
SELECT OCTET_LENGTH('café');
Резултат:
<пред>+-----------------------+| OCTET_LENGTH('кафене') |+-----------------------+| 5 |+-----------------------+
В този случай низът е дълъг четири знака, но OCTET_LENGTH()
върна 5
. Това е така, защото последният символ използва два октета/байта.
Сравнение с CHAR_LENGTH()
и BIT_LENGTH()
Ето едно бързо сравнение между OCTET_LENGTH()
, CHAR_LENGTH()
(който връща броя на знаците в низа) и BIT_LENGTH()
(който връща броя на битовете в низа):
SELECT
OCTET_LENGTH('อ'),
CHAR_LENGTH('อ'),
BIT_LENGTH('อ');
Резултат:
+---------------------+--------------------+--- ----------------+| OCTET_LENGTH('อ') | CHAR_LENGTH('อ') | BIT_LENGTH('อ') |+---------------------+------------------- +------------------+| 3 | 1 | 24 |+---------------------+--------------------+---- ---------------+
Този тайландски знак (อ
) използва 3 байта и следователно OCTET_LENGTH()
връща 3
.
CHAR_LENGTH()
връща броя на знаците (1
) и BIT_LENGTH()
връща броя на битовете (24
).
Не-низови
Ако аргументът не е низ, той се преобразува в низ.
Ето още един пример, който използва число:
SELECT OCTET_LENGTH(1234);
Резултат:
+-------------------+| OCTET_LENGTH(1234) |+-------------------+| 4 |+-------------------+
Нулеви аргументи
Предаването на null
връща null
:
SELECT OCTET_LENGTH(null);
Резултат:
+-------------------+| OCTET_LENGTH(нула) |+-------------------+| NULL |+-------------------+
Липсващ аргумент
Извикване на OCTET_LENGTH()
без подаване на аргумент води до грешка:
SELECT OCTET_LENGTH();
Резултат:
ГРЕШКА 1582 (42000):Неправилен брой параметри в извикването на естествена функция „OCTET_LENGTH“