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;
/
责任编辑:虫虫