Oracle
 sql >> Datenbank >  >> RDS >> Oracle

BIN_TO_NUM()-Funktion in Oracle

In der Oracle-Datenbank die BIT_TO_NUM() Funktion konvertiert einen Bitvektor in seine entsprechende Zahl.

Syntax

Die Syntax lautet wie folgt:

BIN_TO_NUM(expr [, expr ]... )

Wo jeder expr repräsentiert ein Bit im Bitvektor.

Das Argument/die Argumente kann/können ein beliebiger numerischer Datentyp oder ein beliebiger nichtnumerischer Datentyp sein, der implizit in NUMBER konvertiert werden kann . Jeder Ausdruck muss zu 0 ausgewertet werden oder 1 .

Beispiel

Hier ist ein Beispiel:

SELECT BIN_TO_NUM(1)
FROM DUAL;

Ergebnis:

1

In diesem Fall repräsentiert der Binärwert 1 die Zahl 1.

Hier ist noch einer:

SELECT BIN_TO_NUM(1, 0)
FROM DUAL;

Ergebnis:

2

Machen wir jetzt eine viel größere Zahl:

SELECT BIN_TO_NUM(1, 0, 1, 1, 1, 0)
FROM DUAL;

Ergebnis:

46

Ungültige Argumente

Aufruf von BIN_TO_NUM() mit Argumenten, die nicht zu einer NUMBER aufgelöst werden zu einem Fehler führen:

SELECT BIN_TO_NUM('Cat')
FROM DUAL;

Ergebnis:

ORA-01722: invalid number

Nullwerte

Wenn irgendein Argument null ist , tritt ein „illegal argument“-Fehler auf:

SELECT BIN_TO_NUM(null)
FROM DUAL;

Ergebnis:

ORA-01760: illegal argument for function

Keine Argumente?

Aufruf von BIN_TO_NUM() ohne Argumente gibt 0 zurück (Null):

SELECT BIN_TO_NUM()
FROM DUAL;

Ergebnis:

0