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

RAWTONHEX()-Funktion in Oracle

In der Oracle-Datenbank das RAWTONHEX() Funktion wandelt einen Rohwert in hexadezimal um.

Es ähnelt dem RAWTOHEX() Funktion, außer dass ihr Wert immer im nationalen Zeichensatz zurückgegeben wird.

Syntax

Die Syntax lautet wie folgt:

RAWTONHEX(raw)

Beispiel

Hier ist ein Beispiel:

SELECT 
    RAWTONHEX(HEXTORAW('f9')) AS "Result",
    DUMP(RAWTONHEX(HEXTORAW('f9'))) AS "Dump"
FROM DUAL;

Ergebnis:

   Result                      Dump 
_________ _________________________ 
F9        Typ=1 Len=4: 0,70,0,57   

Hier habe ich den HEXTORAW() verwendet Funktion zum Konvertieren einer hexadezimalen Zeichenfolge in RAW , dann verwendet RAWTONHEX() um es wieder umzuwandeln. Die Ausgabe von DUMP() Funktion zeigt, dass der zurückgegebene Datentyp vom Typ 1 ist.

Null-Argument

Wenn das Argument null ist , ist das Ergebnis null :

SET NULL 'null';
SELECT RAWTONHEX(null)
FROM DUAL;

Ergebnis:

null

Standardmäßig geben SQLcl und SQL*Plus ein Leerzeichen zurück, wenn als Ergebnis eines SQL-SELECT ein Nullwert auftritt Aussage.

Sie können jedoch SET NULL verwenden um eine andere Zeichenfolge anzugeben, die zurückgegeben werden soll. Hier habe ich angegeben, dass der String null zurückgegeben werden soll.

Ungültige Argumentanzahl

Aufruf von RAWTONHEX() ohne Argumente führt zu einem Fehler:

SELECT RAWTONHEX()
FROM DUAL;

Ergebnis:

SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"

Und das Übergeben zu vieler Argumente führt ebenfalls zu einem Fehler:

SELECT RAWTONHEX('a', 'b')
FROM DUAL;

Ergebnis:

SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"