zoukankan      html  css  js  c++  java
  • ORACLE 36进制和10进制,互相转换函数

    第一部分

    --36转10进制

    create or replace function f_36to10 (str varcharreturn int  is

      returnValue int;
      str36     varchar(36);
      subWork   varchar(1);
      workIndex   int;
      len     int;
      i       int;

    begin

      returnValue:= 0;
      str36 := '123456789ABCDEFGHIJKLMNOPQRSTUVWSYZ';
      i := 1;
      len := length(trim(str));
      
      while i <= len loop
        subWork := SUBSTR(str, i, 1);
        workIndex := instrstr36,subWork,1,1);
        returnValue := returnValue + (workIndex * power(36, len-i));
        i := i + 1;
      end loop;

      return  returnValue;
      
    end f_36to10;

    第二部分

    --10转36进制

    create or replace function f_10to36(intreturn varchar is

      ret varchar2(8);
      var_m int;
      var_s int;
      
    begin

      ret := '';
      var_s := i;
      while var_s >= 36 loop
        var_m := mod(var_s, 36);
        if var_m < 10 then
         ret := to_char(var_m|| ret;
        else
        ret := chr(var_m - 10 97|| ret;
          end if;
        var_s := trunc(var_s / 36);
      end loop;
      if var_s > or (var_s = and ret = '') then
        if var_s < 10 then
         ret := to_char(var_s|| ret;
        else
         ret := chr(var_s - 10 97|| ret;
        end if;
      end if;
      
      return UPPER(ret);--lpad(ret, 8'0');
      
    end f_10to36;

    另外一个方法,链接:http://www.cnblogs.com/jak-black/archive/2010/09/25/1834617.html

  • 相关阅读:
    uni-app 发起请求,Toast 消息提示 ,跳转页面
    uView初识
    uni-app初识
    docker目录 /var/lib/docker/containers 日志清理
    Linux中使用pigz工具更快的压缩和解压文件
    docker 修改默认网段
    LayaAir提示:版本不匹配!全局tsc(2.7.2)!=VS Code的语言服务(2.1.5)。可能出现不一致的编译错误
    C++ 格式化 浮点为字符串
    安装 ta-lib
    编译 python 代码
  • 原文地址:https://www.cnblogs.com/zzjhn/p/5057106.html
Copyright © 2011-2022 走看看