No Oracle Database, você pode usar o
TO_CHAR()
função para converter um número em seu equivalente hexadecimal. Para fazer isso, use o X
elemento de formato. Exemplo
Segue um exemplo para demonstrar:
SELECT TO_CHAR(15, 'X')
FROM DUAL;
Resultado:
TO_CHAR(15,'X') __________________ F
F é o equivalente hexadecimal a 15 e é isso que é retornado.
Zeros à esquerda
Você pode preceder este elemento apenas com
0
(que retorna zeros à esquerda) ou FM
(que suprime o preenchimento). Veja o que acontece quando o precedemos com
0
:SELECT TO_CHAR(15, '0X')
FROM DUAL;
Resultado:
TO_CHAR(15,'0X') ___________________ 0F
Suprimir espaços em branco à esquerda
Se você não especificar
0
nem FM
com X
, o valor de retorno sempre terá um espaço em branco à esquerda. Veja o que acontece quando usamos o
FM
modificador de formato para suprimir o preenchimento:SELECT TO_CHAR(15, 'fm0X')
FROM DUAL;
Resultado:
TO_CHAR(15,'FM0X') _____________________ 0F
O espaço principal desapareceu.
Maiúsculas x Minúsculas
Passando um
X
maiúsculo resulta em um valor hexadecimal maiúsculo e passa um x
minúsculo resulta em um valor hexadecimal minúsculo:SELECT
TO_CHAR(15345, 'fm0XXXX'),
TO_CHAR(15345, 'fm0xxxx')
FROM DUAL;
Resultado:
TO_CHAR(15345,'FM0XXXX') TO_CHAR(15345,'FM0XXXX') ___________________________ ___________________________ 03BF1 03bf1
Não inteiros
Se o número não for um inteiro, ele será arredondado para o inteiro mais próximo:
SELECT
TO_CHAR(12.49, 'fm0xxxx') AS "12.49",
TO_CHAR(12.50, 'fm0xxxx') AS "12.50"
FROM DUAL;
Resultado:
12.49 12.50 ________ ________ 0000c 0000d