Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Função BIN_TO_NUM() no Oracle

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