select translate('12312323','123456789','一二三四五六七八九') from dual

解决方案 »

  1.   

    select translate(12312323,'123456789','一二三四五六七八九') from dual没有写0,不知道你要怎么处理。赫赫,只是给你一个参考的例子。赫赫,希望有用。
      

  2.   

    create or replace Function HCUppMoney(numMoney in Number)
    RETURN VARCHAR2
    IS strMoney VARCHAR2(60);
    strSign varchar2(4);
    numValue number(22);
    strNum Varchar2(2);
    strBit Varchar2(2);
    numBit number(2);
    numMod Number(1);
    strUppNum VARCHAR2(20):='零壹贰叁肆伍陆柒捌玖';
        strUppUnit VARCHAR2(34):='分角圆拾佰仟万拾佰仟亿拾佰仟万拾佰';
    BEGIN 
        if numMoney<0 then
    strSign:='[负]';
    else
    strSign:='';
    end if;
    numValue:=abs(numMoney)*100;
    strMoney:='';
    numBit:=0;
    LOOP
    numMod:=Mod(numValue,10);
            strNum:=substr(strUppNum,numMod+1,1);
            strBit:=substr(strUppUnit,numBit+1,1);
    strMoney:=strNum||strBit||strMoney;
    numValue:=FLOOR(numValue/10);
    numBit:=numBit+1;
    exit when numValue<1 or numBit>16;
    END LOOP;
    strMoney:=replace(strMoney,'零角','零');
    strMoney:=replace(strMoney,'零仟','零');
    strMoney:=replace(strMoney,'零佰','零');
    strMoney:=replace(strMoney,'零拾','零');
    strMoney:=replace(strMoney,'零零','零');
    strMoney:=replace(strMoney,'零零','零');
    strMoney:=replace(strMoney,'零分','整');
    strMoney:=replace(strMoney,'零圆','圆');
    strMoney:=replace(strMoney,'零万','万');
    strMoney:=replace(strMoney,'零亿','亿');
    strMoney:=replace(strMoney,'亿万','亿');
    strMoney:=strSign||strMoney;
    RETURN(strMoney);
    END;
      

  3.   

    可以自己写函数,也可以用translate,但是推荐用translate来实现.