Comment puis-je convertir un nombre hexadécimal en nombre décimal (et inversement) en utilisant Oracle SQL?Oracle: Comment convertir un hex en décimal dans Oracle SQL?
18
A
Répondre
32
Si vous utilisez 8.1.5 et ci-dessus, vous pouvez utiliser:
Pour convertir hexadécimal en décimal:
select to_number('AA', 'xx') from dual;
Pour convertir de décimal en hexadécimal:
select to_char(111, 'xxxx') from dual;
3
FTA: Oracle to Decimal:
CREATE OR REPLACE FUNCTION hex2dec (hexnum IN CHAR) RETURN NUMBER IS
i NUMBER;
digits NUMBER;
result NUMBER := 0;
current_digit CHAR(1);
current_digit_dec NUMBER;
BEGIN
digits := LENGTH(hexnum);
FOR i IN 1..digits LOOP
current_digit := SUBSTR(hexnum, i, 1);
IF current_digit IN ('A','B','C','D','E','F') THEN
current_digit_dec := ASCII(current_digit) - ASCII('A') + 10;
ELSE
current_digit_dec := TO_NUMBER(current_digit);
END IF;
result := (result * 16) + current_digit_dec;
END LOOP;
RETURN result;
END hex2dec;
/
show errors
CREATE OR REPLACE FUNCTION num2hex (N IN NUMBER) RETURN VARCHAR2 IS
H VARCHAR2(64) :='';
N2 INTEGER := N;
BEGIN
LOOP
SELECT RAWTOHEX(CHR(N2))||H
INTO H
FROM dual;
N2 := TRUNC(N2/256);
EXIT WHEN N2=0;
END LOOP;
RETURN H;
END num2hex;
/
show errors
11
SELECT TO_NUMBER('DEADBEEF', 'XXXXXXXX')
FROM dual
---
3735928559
SELECT TO_CHAR(3735928559, 'XXXXXXXX')
FROM dual
---
DEADBEEF
5
partir de Oracle8i, le TO_CHAR et fonctions TO_NUMBER peut gérer conversions de la base 10 (en décimal) pour base 16 (hexadécimal) et vice-versa :
SQL> select to_char(123,'XX') to_hex,
2 to_number('7B','XX') from_hex
3 from dual
4/
TO_ FROM_HEX
------ -----------------
7B 123
Questions connexes
- 1. Comment convertir un hex en décimal en utilisant VB.NET?
- 2. hex à 64 Signé Décimal
- 3. Comment faire pour convertir le serveur SQL en Oracle?
- 4. tableaux dans Oracle SQL
- 5. Convertir un hexagone en décimal dans le script make?
- 6. Oracle SQL utilisation Coalesce
- 7. Comment convertir Oracle "TIME" à JDBC Time dans la requête?
- 8. Oracle/Python Conversion en chaîne -> HEX (pour la colonne RAW) -> varchar2
- 9. Oracle et SQL Dataset
- 10. Oracle compile view sql
- 11. convertir des procédures stockées du serveur sql à oracle
- 12. convertir requête de serveur SQL externe oracle joindre question
- 13. Oracle SQL Query (Analytics?)
- 14. Comment rechercher un index dans Oracle
- 15. Comment amener un BLOB Oracle dans SQL Server?
- 16. Comment sélectionner un groupe lié d'éléments dans Oracle SQL
- 17. Conversion de SQL Server à Oracle SQL
- 18. Comment obtenir l'année en cours en utilisant SQL sur Oracle?
- 19. En SQL comment puis-je convertir un type de données monétaire en nombre décimal?
- 20. Comment convertir un nombre décimal en temps ou vice versa
- 21. Lignes en double dans Oracle
- 22. caractère d'échappement Oracle SQL (pour un « & »)
- 23. requête SQL en cas d'erreur Oracle donnant
- 24. Variables de table dans Oracle PL/SQL?
- 25. Conversion d'une chaîne en HEX dans SQL
- 26. Traitement des données circulaires dans Oracle SQL
- 27. Comment échapper un mot réservé dans Oracle?
- 28. Oracle: suivi des instructions SQL
- 29. Puis-je exécuter un script Oracle Oracle arbitraire via ODP.NET?
- 30. Oracle SQL Identifiant non valide
Merci pour l'info. Le lien est mort, cependant. – amram99
Merci de partager le nombre décimal en chaîne hexadécimale dans votre réponse, même si cela dépasse la question de l'OP. –