利用CONNECT BY实现二进制到十进制的转换

来源:互联网 发布:windows开启samba 编辑:程序博客网 时间:2024/04/26 07:10

CONNECT BY可用于生成序列,下面的函数就是利用CONNECT BY的这一特性实现的二进制到十进制的转行函数。

create or replace function bintodec(bstr in varchar2) return varchar2 is  -- ********************************************************  --* 文件名:BinToDec.sql  -- * 版本:1.0  -- * 用途:利用connect by实现二进制向十进制的转换  -- * 参数:  -- * bStr: 待转换的二进制串  -- * 作者:zhanglt(20120317)  -- * 修改者:  -- ********************************************************  v_vc_sourstr varchar2(4000);  v_vc_rtnstr  varchar2(4000);begin  v_vc_sourstr := trim(bstr);  select sum(factor)    into v_vc_rtnstr    from (select substr(v_vc_sourstr, rownum, 1) *                 power(2, length(v_vc_sourstr) - rownum) factor            from dual          connect by rownum <= length(v_vc_sourstr));  return v_vc_rtnstr;exception  when others then    return null;end;



原创粉丝点击