--十进制转其他进制函数createorreplacefunctionto_base(p_decinnumber,p_baseinnumber)returnvarchar2isl_strvarchar2(255)defaultNULL;l_numnumberdefaultp_dec;l_hexvarchar2(16)default'0123456789ABCDEF';beginif(trunc(p_dec)<>p_decORp_dec<0)thenraisePROGRAM_ERROR;endif;loopl_str:=substr(l_hex,mod(l_num,p_base)+1,1)||l_str;l_num:=trunc(l_num/p_base);exitwhen(l_num=0);endloop;returnl_str;endto_base;--其他进制转十进制createorreplacefunctionto_dec(p_strinvarchar2,p_from_baseinnumberdefault16)returnnumberisl_numnumberdefault0;l_hexvarchar2(16)default'0123456789ABCDEF';beginforiin1..length(p_str)loopl_num:=l_num*p_from_base+instr(l_hex,upper(substr(p_str,i,1)))-1;endloop;returnl_num;endto_dec;
阅读全文 >