oracle进制转换方法
来源:优易学  2011-11-9 12:46:13   【优易学:中国教育考试门户网】   资料下载   IT书店
create or replace Function hextostr(v_str varchar2) Return Varchar2 
is
v_out Varchar2(4);
begin
  Select decode(lower(v_str),’0’,’0000’,
                      ’1’,’0001’,
                      ’2’,’0010’,
                      ’3’,’0011’,
                      ’4’,’0100’,
                      ’5’,’0101’,
                      ’6’,’0110’,
                      ’7’,’0111’,
                      ’8’,’1000’,
                      ’9’,’1001’,
                      ’a’,’1010’,
                      ’b’,’1011’,
                      ’c’,’1100’,
                      ’d’,’1101’,
                      ’e’,’1110’,
                      ’f’,’1111’)
  Into v_out From dual;                  
Return v_out;
end hextostr;
/
********************
转化为二进制
create or replace Function getstr(v_str varchar2) Return Varchar2
 is
v_out Varchar2(8000):=’’;
v_int Number:=1;
begin
  While v_int<length(v_str)
  Loop
  v_out:=v_out||hextostr(substr(v_str,v_int,1));
  v_int:=v_int+1;
  End Loop;
  Return v_out;
end getstr;
/
**************************
将二进制转化为10进制
Create Or Replace Function strtodec(v_str Varchar2) Return Number
Is 
v_int Number;
v_sum Number:=0;
Begin
For i In 1..length(v_str)
Loop
    v_int:=instr(v_str,’1’,i,1);
    If v_int>0 and substr(v_str,i,1)<>0 Then
    v_sum:=v_sum+power(2,length(v_str)-v_int);
    End If;
End Loop;
Return v_sum;
End;
/

责任编辑:虫虫

文章搜索:
 相关文章
热点资讯
热门课程培训