为了制作费用报销单,用到ireport 工具制作报表,需要将小写金额转换成以下形式!
在网上看过很多例子,出现两种状况:一是在oracle执行不了;二是执行的结果不是我要的形式,所以小菜鸟我自行写了一个函数,本来想用case写条件,但是本人能力有限,只会用if-elsif-else-end if 来写,如果各位大侠会用case 写,请多多赐教!以下函数经过验证,是可以用滴!看以下函数:
create or replace function convert_money(money varchar) return varchar2 as
v_LowerStr varchar(200); --小写金额
v_Uperpart varchar(200);
v_UpperStr varchar(200); --大写金额
i integer;-----小写金额的长度
j integer;-----金额的位置
begin
v_LowerStr := LTRIM(RTRIM(ROUND(money, 2))) * 100; --四舍五入为指定的精度并删除数据左右空格,并转换成以分为单位
i := length(v_LowerStr) - 1;
if (i = 7) then
v_UpperStr := '⊙ 佰' || v_UpperStr;
elsif i = 6 then
v_UpperStr := '佰 ⊙ 拾' || v_UpperStr;
elsif i = 5 then
v_UpperStr := '佰 拾 ⊙ 万' || v_UpperStr;
elsif i = 4 then
v_UpperStr := '佰 拾 万 ⊙ 仟' || v_Upper