Wie kann ich hexadezimal in dezimal (und wieder zurück) mit Oracle SQL konvertieren?Oracle: Wie konvertiere ich Hex in Dezimal in Oracle SQL?
18
A
Antwort
32
Wenn Sie 8.1.5 und höher verwenden, können Sie verwenden:
Um von hexadezimal zu konvertieren dezimal:
select to_number('AA', 'xx') from dual;
Um von Dezimal in hexadezimal zu konvertieren:
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
Ab Oracle8i, die TO_CHAR und TO_NUMBER Funktionen können Konvertierungen von Basis 10 (dezimal) zu Basis 16 (hexadezimal) und wieder zurück hand :
SQL> select to_char(123,'XX') to_hex,
2 to_number('7B','XX') from_hex
3 from dual
4/
TO_ FROM_HEX
------ -----------------
7B 123
Verwandte Themen
- 1. Konvertiere Binär in Hex in Dezimal
- 2. Generieren Sie zufällige Hex-Farbwerte in Oracle SQL-Datenbank
- 3. Oracle-Nummer zu C# Dezimal
- 4. Bestellvergleich in Oracle SQL
- 5. SQL Abfragen in Oracle
- 6. Schwenk in Oracle SQL
- 7. in Oracle PL SQL
- 8. Substr in Oracle SQL
- 9. Oracle SQL vs Oracle PL/SQL
- 10. Oracle SQL - Wie zeitlichen
- 11. Oracle SQL - Zeilen in Spalten
- 12. ODER Kurzschrift in Oracle SQL?
- 13. Tabellenvariablen in Oracle PL/SQL?
- 14. Spalte ersetzen in Oracle SQL
- 15. Verbinden von in Oracle SQL
- 16. Datumsbereich in PL/SQL (Oracle)
- 17. SQL-Argument-Limit in Oracle
- 18. passendes Intervall in SQL - Oracle
- 19. Wie konvertiere ich Int/Dezimal in float in C#?
- 20. Wie in oracle
- 21. Wie die nächsten Termine in Oracle SQL
- 22. Wie konvertiere ich IP-Unicode Hex-String
- 23. Wie zu analysieren, Hex oder Dezimal int in Python
- 24. Verknüpfen von SQL-Ansichten in Oracle sql
- 25. Wie Konvertiere Hex in Doppel C#?
- 26. Konvertieren von Hex in Dezimal in Swift
- 27. Alte SQL History in Oracle SQL Entwickler
- 28. SQL, wie Datensätze Oracle fusionieren
- 29. Migrieren von Sybase-Abfragen zu Oracle Sql: Oracle sql Entwickler
- 30. Wie komme ich in Oracle-Entwicklung?
Danke für die Info. Die Verbindung ist jedoch tot. – amram99
Vielen Dank für die gemeinsame Nutzung der Dezimalzahl in hexadezimale Zeichenfolge in Ihrer Antwort, obwohl es OP Frage überschritten. –