create or replace Function ft_readtnum(ai_amount IN NUMBER ) RETURN VARCHAR2 IS ls_ans1 varchar2(200); ls_money1 varchar2(200); ls_money2 varchar2(200); ls_money3 varchar2(200); ls_pre varchar2(100); ls_moneystr varchar2(100); ls_curr_name varchar2(10); ls_curr_sub_name varchar2(10); li_amount number; li_strlength number; li_counter1 number; li_stang number; li_stangflag number; ls_decimal varchar2(200); BEGIN --li_amount := trunc( ai_amount , 2 ); li_amount := ai_amount; ls_curr_name := '¨Ø´'; ls_curr_sub_name := ''; li_strlength := NVL(Length(to_char(li_amount)), 0); if substr(to_char(li_amount),li_strlength-1,1) = '.' then ls_money1 := to_char(li_amount)||'0'; else ls_money1 := to_char(li_amount); end if; if instr( to_char( li_amount ) , '.' ) > 0 then li_stangflag := 1; else li_stangflag := 0; end if; li_counter1 := 1; ls_ans1 := ''; li_stang := 0; loop exit when NVL(length(ls_money1), 0) = 0; li_strlength := NVL(Length(ls_money1), 0); ls_money2 := substr(ls_money1,li_strlength,1); if li_strlength <> 1 Then ls_money3 := substr(ls_money1,li_strlength - 1,1); end If; if ls_money2 = '0' then if li_stangflag = 1 then ls_moneystr := 'ÈÙ¹Âì'; else ls_moneystr := ''; end if; else if ls_money2 = '1' then ls_moneystr := '˹Öè§'; if li_counter1 = 1 then If ls_money3 <> '0' Then --If li_strlength > 1 Then if li_stangflag = 0 then ls_moneystr := 'àÍç´'; end if; End If; else if li_counter1 = 2 then if li_stangflag = 0 then ls_moneystr := ''; end if; end if; end if; else if ls_money2 = '2' then If li_counter1 = 2 Then if li_stangflag = 0 then ls_moneystr := 'ÂÕè'; else ls_moneystr := 'Êͧ' ; end if; Else ls_moneystr := 'Êͧ'; End If; else if ls_money2 = '3' then ls_moneystr := 'ÊÒÁ'; else if ls_money2 = '4' then ls_moneystr := 'ÊÕè'; else if ls_money2 = '5' then ls_moneystr := 'ËéÒ'; else if ls_money2 = '6' then ls_moneystr := 'Ë¡'; else if ls_money2 = '7' then ls_moneystr := 'à¨ç´'; else if ls_money2 = '8' then ls_moneystr := 'á»´'; else if ls_money2 = '9' then ls_moneystr := 'à¡éÒ'; else ls_moneystr := ''; end if; end if; end if; end if; end if; end if; end if; end if; end if; end if; ls_pre := ''; if li_counter1 = 1 then ls_pre := ''; else if li_counter1 = 2 then If ls_money2 <> '0' Then if li_stangflag = 0 then ls_pre := 'ÊÔº'; else ls_pre := ''; end if; End If; else if li_counter1 = 3 then If ls_money2 <> '0' And ls_money2 <> '.' and li_stangflag = 0 Then ls_pre := 'ÃéÍÂ'; End If; else if li_counter1 = 4 and li_stangflag = 0 then If ls_money2 <> '0' Then ls_pre := '¾Ñ¹'; End If; else if li_counter1 = 5 and li_stangflag = 0 then If ls_money2 <> '0' Then ls_pre := 'ËÁ×è¹'; End If; else if li_counter1 = 6 and li_stangflag = 0 then If ls_money2 <> '0' Then ls_pre := 'áʹ'; End If; end if; end if; end if; end if; end if; end if; ls_money1 := substr(ls_money1,1,li_strlength - 1); ls_ans1 := ls_moneystr||ls_pre||ls_ans1; If li_counter1 = 6 Then li_counter1 := 1; If li_strlength >1 and li_stangflag = 0 Then ls_ans1 := 'ÅéÒ¹'||ls_ans1; End If; Else If ls_money2 = '.' Then li_stang := 1; li_counter1 := 1; ls_decimal := ls_ans1; If ls_ans1 <> '' Then If li_strlength > 2 Then ls_ans1 := ltrim(ls_curr_name)||ls_ans1||ltrim(ls_curr_sub_name); Else If li_strlength = 2 Then If ls_money3 <> '0' Then ls_ans1 := ltrim(ls_curr_name)||ls_ans1||ltrim(ls_curr_sub_name); Else ls_ans1 := ls_ans1||ltrim(ls_curr_sub_name); End If; Else ls_ans1 := ls_ans1||ltrim(ls_curr_sub_name); End If; End If; Else ls_ans1 := ltrim(ls_curr_name)||ls_decimal||ltrim(ls_curr_sub_name); --ls_ans1 := ltrim(ls_curr_name)||ls_decimal||ltrim(ls_curr_sub_name); End If; Else li_counter1 := li_counter1 +1; End If; End If; if ls_money2 = '.' then li_stangflag := 0; end if; end Loop; RETURN(ls_ans1); End ; /