No Oracle Database, o BIT_TO_NUM()
A função converte um vetor de bits em seu número equivalente.
Sintaxe
A sintaxe é assim:
BIN_TO_NUM(expr [, expr ]... )
Onde cada expr
representa um bit no vetor de bits.
O(s) argumento(s) pode(m) ser qualquer tipo de dado numérico ou qualquer tipo de dado não numérico que possa ser convertido implicitamente em NUMBER
. Cada expressão deve ser avaliada como 0
ou 1
.
Exemplo
Aqui está um exemplo:
SELECT BIN_TO_NUM(1)
FROM DUAL;
Resultado:
1
Neste caso, o valor binário 1 representa o número 1.
Aqui está outra:
SELECT BIN_TO_NUM(1, 0)
FROM DUAL;
Resultado:
2
Agora vamos fazer um número muito maior:
SELECT BIN_TO_NUM(1, 0, 1, 1, 1, 0)
FROM DUAL;
Resultado:
46
Argumentos inválidos
Chamando BIN_TO_NUM()
com argumentos que não resolvem para um NUMBER
resultar em um erro:
SELECT BIN_TO_NUM('Cat')
FROM DUAL;
Resultado:
ORA-01722: invalid number
Valores nulos
Se algum argumento for null
, ocorre um erro de “argumento ilegal”:
SELECT BIN_TO_NUM(null)
FROM DUAL;
Resultado:
ORA-01760: illegal argument for function
Sem argumentos?
Chamando BIN_TO_NUM()
sem nenhum argumento retorna 0
(zero):
SELECT BIN_TO_NUM()
FROM DUAL;
Resultado:
0