类似01234----》〇一二三四  这种转换的函数要怎么写呢?
求帮助。

解决方案 »

  1.   


    --创建函数
    create or replace function Convert_Format(num in varchar2) return varchar2 is
      res  varchar2(50);
      len  number;
      snum varchar2(5);
    begin
      select length(num) into len from dual;
      for i in 1 .. len loop
        case substr(num, i, 1)
          when '0' then
            snum := 'O';
          when '1' then
            snum := '一';
          when '2' then
            snum := '二';
          when '3' then
            snum := '三';
          when '4' then
            snum := '四';
          when '5' then
            snum := '五';
          when '6' then
            snum := '六';
          when '71' then
            snum := '七';
          when '8' then
            snum := '八';
          when '9' then
            snum := '九';
        end case;
        res := res || snum;
      end loop;
      return res;
    end Convert_Format;--使用函数
    select Convert_Format('012') from dual;
      

  2.   

    一一对应清晰直接用translate有进位等其它复杂逻辑自己写函数。
      

  3.   

    select replace(
           replace(
           replace(
           replace(
           replace(
           replace(
           replace(
           replace(
           replace( 
           replace('01234982', '0', '零' ),  '1', '一' ), '2', '二'), '3', '三'), '4', '四'), '5', '五'), '6', '六'), '7', '七'), '8', '八'), '9', '九' )
      from dual;