В Oracle Database, BIT_TO_NUM()
функция преобразува битов вектор в еквивалентен номер.
Синтаксис
Синтаксисът е така:
BIN_TO_NUM(expr [, expr ]... )
Къде всеки expr
представлява бит в битовия вектор.
Аргументът/ите могат да бъдат всеки числов тип данни или всеки нечисловен тип данни, които могат да бъдат имплицитно преобразувани в NUMBER
. Всеки израз трябва да се оценява на 0
или 1
.
Пример
Ето един пример:
SELECT BIN_TO_NUM(1)
FROM DUAL;
Резултат:
1
В този случай двоичната стойност 1 представлява числото 1.
Ето още един:
SELECT BIN_TO_NUM(1, 0)
FROM DUAL;
Резултат:
2
Сега нека направим много по-голямо число:
SELECT BIN_TO_NUM(1, 0, 1, 1, 1, 0)
FROM DUAL;
Резултат:
46
Невалидни аргументи
Извикване на BIN_TO_NUM()
с аргументи, които не се разрешават до NUMBER
води до грешка:
SELECT BIN_TO_NUM('Cat')
FROM DUAL;
Резултат:
ORA-01722: invalid number
Нулеви стойности
Ако някой аргумент е null
, възниква грешка „незаконен аргумент“:
SELECT BIN_TO_NUM(null)
FROM DUAL;
Резултат:
ORA-01760: illegal argument for function
Няма аргументи?
Извикване на BIN_TO_NUM()
без никакви аргументи връща 0
(нула):
SELECT BIN_TO_NUM()
FROM DUAL;
Резултат:
0