Quick Search:
 CODE Oracle PL/SQL Code Library
 JOBS Find Or Post Oracle Jobs
 FORUM Oracle Discussion & Chat
 Oracle PL/SQL: Convert Hex to Decimal, Decimal to Hex Jump to: Select a Location PSOUG Home Page Oracle Code Library mySQL Code Library PHP Code Library JavaScript Code Library Oracle Terms & Definitions Oracle Error Codes PSOUG Community Blogs Oracle Jobs Board PSOUG Forum Oracle User Group Directory Free Oracle Magazines Online Learning Center PSOUG Presentations Advanced Code Search News and Events Sponsors Page Submit Code Contact Us

Snippet Name: Convert Hex to Decimal, Decimal to Hex

Description: Functions to convert Hex to Decimal

Example usage:
select hex2dec('FF') from dual;

select num2hex(10) from dual; and vice versa.

Comment: (none)

Language: PL/SQL
Highlight Mode: PLSQL

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

SQL University.net courses meet the most demanding needs of the business world for advanced education in a cost-effective manner. SQL University.net courses are available immediately for IT professionals and can be taken without disruption of your workplace schedule or processes.

Compared to traditional travel-based training, SQL University.net saves time and valuable corporate resources, allowing companies to do more with less. That's our mission, and that's what we deliver.