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