¿Cómo convierto hexadecimal a decimal (y viceversa) utilizando Oracle SQL?Oracle: ¿Cómo convierto hexadecimal a decimal en Oracle SQL?
18
A
Respuesta
32
Si está utilizando 8.1.5 y arriba se puede utilizar:
convertir de hexadecimal a decimal:
select to_number('AA', 'xx') from dual;
convertir de decimal a hexadecimal:
select to_char(111, 'xxxx') from dual;
3
TLC: 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, la TO_CHAR y funciones TO_NUMBER puede manejar conversiones de base 10 (decimal) para base 16 (hexadecimal) y volver de nuevo :
SQL> select to_char(123,'XX') to_hex,
2 to_number('7B','XX') from_hex
3 from dual
4/
TO_ FROM_HEX
------ -----------------
7B 123
Cuestiones relacionadas
- 1. ¿Cómo convierto hexadecimal a decimal en Python?
- 2. Connect en Oracle SQL
- 3. Python convierte decimal a hexadecimal
- 4. hexadecimal a 64 decimal firmado
- 5. MENOR O IGUAL A en Oracle SQL
- 6. oracle pl/sql arrays
- 7. Oracle SQL Query logging
- 8. ¿Qué hace (+) en Oracle SQL?
- 9. hexadecimal la conversión a decimal
- 10. MAX (FECHA) - SQL ORACLE
- 11. Generar inserción sql en Oracle
- 12. ORACLE SQL listagg function
- 13. Migración de Oracle a SQL Server
- 14. De decimal a hexadecimal en python
- 15. Cómo usar Rollback/Commit en Oracle SQL
- 16. parámetros de unión a Oracle SQL dinámico
- 17. Desarrollador moviéndose de SQL Server a Oracle
- 18. Alternativa estándar de SQL a Oracle DECODE
- 19. Oracle equivalente a SQL Server/Sybase DateDiff
- 20. Oracle SQL - Funciones analíticas OVER a group?
- 21. Oracle equivalente a SQL Server DATEPART
- 22. cómo convertir CSV a tabla en Oracle
- 23. Convertir decimal a hexadecimal con Erlang?
- 24. Migración EF a Oracle
- 25. Oracle 10g SQL Sorting VARCHAR2
- 26. ¿Cómo convierto una cadena hexadecimal en un entero con signo?
- 27. Cómo dividir sentencias Oracle sql para ADO.NET
- 28. Oracle SQL Developer y PostgreSQL
- 29. Oracle PL/SQL UTL_FILE.PUT buffering
- 30. Oracle sql developer color coding
Gracias por la información. El enlace está muerto, sin embargo. – amram99
Gracias por compartir el número decimal a la cadena hexadecimal en su respuesta, aunque haya excedido la pregunta de OP. –