Oracle
 sql >> Database >  >> RDS >> Oracle

Come convertire decimali in esadecimali usando TO_CHAR() in Oracle

In Oracle Database, puoi utilizzare TO_CHAR() funzione per convertire un numero nel suo equivalente esadecimale. Per farlo, usa la X elemento di formato.

Esempio

Ecco un esempio da dimostrare:

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

Risultato:

   TO_CHAR(15,'X') 
__________________ 
 F                

F è l'equivalente esadecimale di 15 e quindi è ciò che viene restituito.

Zeri iniziali

Puoi precedere questo elemento solo con 0 (che restituisce zeri iniziali) o FM (che sopprime il riempimento).

Ecco cosa succede quando lo precede con 0 :

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

Risultato:

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

Elimina gli spazi vuoti principali

Se non specifichi né 0FM con X , il valore restituito ha sempre uno spazio vuoto iniziale.

Ecco cosa succede quando utilizziamo FM modificatore di formato per sopprimere il riempimento:

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

Risultato:

   TO_CHAR(15,'FM0X') 
_____________________ 
0F                    

Lo spazio principale è scomparso.

Maiuscole vs Minuscole

Passaggio di una X maiuscola restituisce un valore esadecimale maiuscolo e passa una x minuscola risulta in un valore esadecimale minuscolo:

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

Risultato:

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

Non interi

Se il numero non è un numero intero, viene arrotondato all'intero più vicino:

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

Risultato:

   12.49    12.50 
________ ________ 
0000c    0000d