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

  • 相关阅读:
    小知识:关于String的创建
    JSON学习笔记,数组
    JSON学习笔记,对象
    爱乐之城 La La Land
    TwoSampleMR包出现报错: None of the specified columns present
    无亲缘关系为何IBD结果为同卵双胞胎/重复样本
    本周最新文献速递20210321
    本周最新文献速递20210314
    使用 KaKs Calculator 计算 KaKs 的衍生问题解答
    本周最新文献速递20210307
  • 原文地址:https://www.cnblogs.com/zzjhn/p/5057106.html
Copyright © 2011-2022 走看看