Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Mailing Lists -> Oracle-L -> Re: Base conversion
Try this:
CREATE FUNCTION to_dec
( p_str in varchar2,
p_from_base in number default 16 ) return number
AS
l_num number default 0; -- l_hex varchar2(16) default '0123456789ABCDEF'; l_base varchar2(16) default '0123456789ABCDEF....YZ'; -- fillin the blanks
for i in 1 .. length(p_str) loop l_num := l_num * p_from_base + instr(l_base,upper(substr(p_str,i,1)))-1; end loop; return l_num;
HTH, don't forget to fill in l_base local variable. Obviosly, in your case "p_from_base" parameter will be 36.
Igor Neyman, OCP DBA
ineyman_at_perceptron.com
> For very obscure reasons (read: one of those developer decisions that you
> want to use a time-machine to go back and change), we're storing some
> information in base-36 (0,1,2,3...8,9,A,B,C,...,Y,Z) in a varchar field.
> And you thought hexadecimal was fun :-)
>
> Now some bright spark would like me to build some PL/SQL to do base
> conversion - in the first instance from base 36 to base 10 (i.e decimal).
> Has anyone done something similar in the past ... that I could borrow or
> co-opt? As you've guessed, the deadline is yesterday :-)
>
> Ciao
> Fuzzy
> :-)
>
> --
> Please see the official ORACLE-L FAQ: http://www.orafaq.net
> --
> Author: Grant Allen
> INET: grant_at_towersoft.co.uk
>
> Fat City Network Services -- 858-538-5051 http://www.fatcity.com
> San Diego, California -- Mailing list and web hosting services
> ---------------------------------------------------------------------
> To REMOVE yourself from this mailing list, send an E-Mail message
> to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in
> the message BODY, include a line containing: UNSUB ORACLE-L
> (or the name of mailing list you want to be removed from). You may
> also send the HELP command for other information (like subscribing).
>
-- Please see the official ORACLE-L FAQ: http://www.orafaq.net -- Author: Igor Neyman INET: ineyman_at_perceptron.com Fat City Network Services -- 858-538-5051 http://www.fatcity.com San Diego, California -- Mailing list and web hosting services --------------------------------------------------------------------- To REMOVE yourself from this mailing list, send an E-Mail message to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing).Received on Tue Jan 28 2003 - 10:29:10 CST
![]() |
![]() |