Dans Oracle Database, vous pouvez utiliser le TO_CHAR()
fonction pour convertir un nombre en son équivalent hexadécimal. Pour cela, utilisez le X
élément de format.
Exemple
Voici un exemple pour illustrer :
SELECT TO_CHAR(15, 'X')
FROM DUAL;
Résultat :
TO_CHAR(15,'X') __________________ F
F est l'équivalent hexadécimal de 15 et c'est donc ce qui est renvoyé.
Zéros non significatifs
Vous ne pouvez faire précéder cet élément que de 0
(qui renvoie des zéros non significatifs) ou FM
(qui supprime le rembourrage).
Voici ce qui se passe lorsque nous le précédons de 0
:
SELECT TO_CHAR(15, '0X')
FROM DUAL;
Résultat :
TO_CHAR(15,'0X') ___________________ 0F
Supprimer les blancs de début
Si vous ne spécifiez ni 0
ni FM
avec X
, la valeur de retour a toujours un espace en tête.
Voici ce qui se passe lorsque nous utilisons le FM
modificateur de format pour supprimer le rembourrage :
SELECT TO_CHAR(15, 'fm0X')
FROM DUAL;
Résultat :
TO_CHAR(15,'FM0X') _____________________ 0F
L'espace de début a disparu.
Majuscule vs Minuscule
Passer un X
majuscule donne une valeur hexadécimale en majuscule et passe un x
en minuscule donne une valeur hexadécimale en minuscule :
SELECT
TO_CHAR(15345, 'fm0XXXX'),
TO_CHAR(15345, 'fm0xxxx')
FROM DUAL;
Résultat :
TO_CHAR(15345,'FM0XXXX') TO_CHAR(15345,'FM0XXXX') ___________________________ ___________________________ 03BF1 03bf1
Non entiers
Si le nombre n'est pas un entier, alors il est arrondi à l'entier le plus proche :
SELECT
TO_CHAR(12.49, 'fm0xxxx') AS "12.49",
TO_CHAR(12.50, 'fm0xxxx') AS "12.50"
FROM DUAL;
Résultat :
12.49 12.50 ________ ________ 0000c 0000d