rowid 64进制转换到10进制

DIY

[@more@]Create Or Replace Function f_Ten_To_64(Fs_Value In Varchar2) Return Number Is
/*******************
description: convert 10 to 64
author:yaoronghui
time :2009-09-17 13:15--20
********************/
Result Number := 0;
Ll_Value Int; --当前字符对应的64进制中的数字
Begin
--64进制 A-Z 0-25;a-z 26-51 0-9 52-61; 62 +;63 /
--如何借助ascii实现计算
For i In 1 .. Length(Fs_Value) Loop
Case
When Regexp_Like(Substr(Fs_Value, i, 1), '^[A-Z]$') Then
--范围是A-Z '[65-90]',则对应0-25
Ll_Value := Ascii(Substr(Fs_Value, i, 1)) - 65 + 0;
When Regexp_Like(Substr(Fs_Value, i, 1), '^[a-z]$') Then
--范围是a-z '[97-122]',则对应26-51
Ll_Value := Ascii(Substr(Fs_Value, i, 1)) - 97 + 26;
When Regexp_Like(Substr(Fs_Value, i, 1), '^[0-9]$') Then
--范围是0-9 '[48-57]',则对应52-61
Ll_Value := Ascii(Substr(Fs_Value, i, 1)) - 48 + 52;
When Regexp_Like(Substr(Fs_Value, i, 1), '^[+]$') Then
--范围是+,则对应62
Ll_Value := 62;
When Regexp_Like(Substr(Fs_Value, i, 1), '^[/]$') Then
--范围是+,则对应63
Ll_Value := 63;
Else
Null;
End Case;
Result := Result + Ll_Value * Power(64, Length(Fs_Value) - i);
End Loop;
Return Result;
Exception
When Others Then
Null;
End f_Ten_To_64;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/450962/viewspace-1027061/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/450962/viewspace-1027061/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值