Oracle中金额转换成大写的函数! 在线等!! select translate('12312323','123456789','一二三四五六七八九') from dual 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 select translate(12312323,'123456789','一二三四五六七八九') from dual没有写0,不知道你要怎么处理。赫赫,只是给你一个参考的例子。赫赫,希望有用。 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; 可以自己写函数,也可以用translate,但是推荐用translate来实现. 发一个sql问题, ORACLE10G INITIALIZING速度慢 pro*c 中文支持 关联表查询问题 在ORACLE存储过程调用存储过程出错了?各位大哥大姐能否帮忙看一下? C#中用企业库读写oracle的blob类型数据的问题 这样的sql语句如何写 proc 查询多字段记录问题? 如何在oracle7.3中使用oracle8.17的数据库 查询某个表时如何判断这个表正在被修改或删除 怎么写SQL串,将当前时间写入Oracle中的类型为Date的字段中? oralce9中如何处理单引号?在线急
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;