您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

Oracle进制转换函数

2025/2/25 0:14:54发布21次查看
oracle中没有16进制转2进制的函数,为了工作方便,自己写了一个create or replace function hex_to_bin(hex varchar2) return va
oracle中没有16进制转2进制的函数,,为了工作方便,自己写了一个
create or replace function hex_to_bin(hex varchar2) return varchar2 is
  v_hex    varchar2(10000);
  v_len    number;
  v_var    varchar2(10000);
  v_result varchar2(10000) := '';
begin
  v_hex := upper(hex);
  v_len := length(v_hex);
  for i in 1 .. v_len loop
    v_var    := case substr(v_hex, i, 1) when '0' then '0000' when '1' then '0001' when '2' then '0010' when '3' then '0011'
    when '4' then '0100' when '5' then '0101' when '6' then '0110' when '7' then '0111' when '8' then '1000' when '9' then '1001'
    when 'a' then '1010' when 'b' then '1011' when 'c' then '1100' when 'd' then '1101' when 'e' then '1110' when 'f' then '1111' end;
    v_result := v_result || v_var || ' ';
  end loop;
  return v_result;
end hex_to_bin;
例子:
sql> select hex_to_bin('0a11') from dual;
hex_to_bin('0a11')
--------------------------------------------------------------------------------
0000 1010 0001 0001
16进制转10进制 ,oracle里面有个to_number函数 可以实现
sql> select to_number('abc','xxx') from dual;
to_number('abc','xxx')
----------------------
                  2748
10进制转16进制,oracle里面有个to_char函数 可以实现
sql> select to_char('2748','xxx') from dual;
to_char('2748','xxx')
---------------------
 abc
2进制转10进制,oracle里面有个bin_to_num函数可以实现
sql> select bin_to_num(1,1,1,1,0) from dual;
bin_to_num(1,1,1,1,0)
---------------------
                   30
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product