sql >> Databasteknik >  >> RDS >> Oracle

Hur man konverterar decimal till hexadecimal med TO_CHAR() i Oracle

I Oracle Database kan du använda TO_CHAR() funktion för att konvertera ett tal till dess hexadecimala ekvivalent. För att göra detta, använd X formatelement.

Exempel

Här är ett exempel att visa:

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

Resultat:

   TO_CHAR(15,'X') 
__________________ 
 F                

F är den hexadecimala motsvarande 15 och det är det som returneras.

Inledande nollor

Du kan bara föregå detta element med 0 (som returnerar inledande nollor) eller FM (vilket dämpar stoppning).

Här är vad som händer när vi föregår det med 0 :

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

Resultat:

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

Undertryck ledande tomrum

Om du inte anger 0 inte heller FM med X , då har returvärdet alltid ett inledande tomrum.

Det här är vad som händer när vi använder FM formatmodifierare för att undertrycka utfyllnad:

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

Resultat:

   TO_CHAR(15,'FM0X') 
_____________________ 
0F                    

Det inledande utrymmet har försvunnit.

Verlor vs gemener

Skickar ett versal X resulterar i ett hexadecimalt värde och ett gemen x resulterar i ett hexadecimalt värde:

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

Resultat:

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

Icke heltal

Om talet inte är ett heltal, avrundas det till närmaste heltal:

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

Resultat:

   12.49    12.50 
________ ________ 
0000c    0000d   

  1. Vad är AWS RDS

  2. Hur du hanterar dina PostgreSQL-databaser från ClusterControl CLI

  3. Hur expanderar jag kommaseparerade värden till separata rader med SQL Server 2005?

  4. Ändra gränsen för Mysql-radstorleken för stor