• 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

  • 相关阅读:
    antd表单不显示label和冒号
    create-react-app 区分环境 环境变量
    在actionCreator中使用getState,数据格式是immutable
    给树状数据添加层级id
    vscode中的正则搜索与替换演示,删除对象中不要的属性及属性值
    http-proxy-middleware做代理时,自定义复杂的匹配规则
    antd省市区级联
    axios封装
    jmeter-07-参数化-关联(json提取)
    jmeter-06-参数化-csv参数化
  • 原文地址:https://www.cnblogs.com/zzjhn/p/5057106.html
Copyright © 2020-2023  润新知