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

So konvertieren Sie Dezimal in Hexadezimal mit TO_CHAR() in Oracle

In Oracle Database können Sie TO_CHAR() verwenden Funktion zum Konvertieren einer Zahl in ihr hexadezimales Äquivalent. Verwenden Sie dazu das X format-Element.

Beispiel

Hier ist ein Beispiel zur Veranschaulichung:

SELECT TO_CHAR(15, 'X')
FROM DUAL;

Ergebnis:

   TO_CHAR(15,'X') 
__________________ 
 F                

F ist das hexadezimale Äquivalent zu 15 und das wird zurückgegeben.

Führende Nullen

Sie können diesem Element nur 0 voranstellen (der führende Nullen zurückgibt) oder FM (was das Auffüllen unterdrückt).

Folgendes passiert, wenn wir ihm 0 voranstellen :

SELECT TO_CHAR(15, '0X')
FROM DUAL;

Ergebnis:

   TO_CHAR(15,'0X') 
___________________ 
 0F                

Führende Leerzeichen unterdrücken

Wenn Sie weder 0 angeben noch FM mit X , dann hat der Rückgabewert immer ein führendes Leerzeichen.

Folgendes passiert, wenn wir FM verwenden Formatmodifikator zum Unterdrücken von Padding:

SELECT TO_CHAR(15, 'fm0X')
FROM DUAL;

Ergebnis:

   TO_CHAR(15,'FM0X') 
_____________________ 
0F                    

Das führende Leerzeichen ist verschwunden.

Großbuchstaben vs. Kleinbuchstaben

Übergeben eines großen X ergibt einen Großbuchstaben-Hexadezimalwert und die Übergabe eines Kleinbuchstabens x ergibt einen Kleinbuchstaben-Hex-Wert:

SELECT  
    TO_CHAR(15345, 'fm0XXXX'),
    TO_CHAR(15345, 'fm0xxxx')
FROM DUAL;

Ergebnis:

   TO_CHAR(15345,'FM0XXXX')    TO_CHAR(15345,'FM0XXXX') 
___________________________ ___________________________ 
03BF1                       03bf1                      

Nicht ganze Zahlen

Wenn die Zahl keine ganze Zahl ist, wird sie auf die nächste ganze Zahl gerundet:

SELECT  
    TO_CHAR(12.49, 'fm0xxxx') AS "12.49",
    TO_CHAR(12.50, 'fm0xxxx') AS "12.50"
FROM DUAL;

Ergebnis:

   12.49    12.50 
________ ________ 
0000c    0000d