oracle 金额的中文,新手请问:oracle中如何把数字转换成汉字 您所在的位置:网站首页 oracle数字转汉字 oracle 金额的中文,新手请问:oracle中如何把数字转换成汉字

oracle 金额的中文,新手请问:oracle中如何把数字转换成汉字

2024-06-10 13:46| 来源: 网络整理| 查看: 265

SQL codelym@TDWORA> CREATE OR REPLACE FUNCTION fn_con_num1(num_in varchar)

2 RETURN VARCHAR2

3 IS

4 v_return VARCHAR2(4);

5 BEGIN

6 IF length(num_in)=1 THEN

7 SELECT decode(num_in,'0','零','1','壹','2','贰','3','参','4','肆','5','伍','6','陆','7','柒','8','捌','9','玖','') AS ret

8 INTO v_return

9 FROM dual;

10 END IF;

11 RETURN v_return;

12 EXCEPTION WHEN OTHERS THEN

13 RETURN NULL;

14 END;

15 /

Function created.

lym@TDWORA> CREATE OR REPLACE FUNCTION fn_con_num2(num_in number)

2 RETURN VARCHAR2

3 IS

4 v_char VARCHAR2(20);

5 v_char_cvt VARCHAR2(80);

6 BEGIN

7 v_char := lpad(to_char(num_in),10,'0');

8 SELECT DECODE(SUBSTR(v_char,1,1),'0','',fn_con_num1(SUBSTR(v_char,1,1))||'十')||

9 DECODE(SUBSTR(v_char,2,1),'0','',fn_con_num1(SUBSTR(v_char,2,1))||'亿')||

10 DECODE(SUBSTR(v_char,3,1),'0','零',fn_con_num1(SUBSTR(v_char,3,1))||'千')||

11 DECODE(SUBSTR(v_char,4,1),'0','零',fn_con_num1(SUBSTR(v_char,4,1))||'佰')||

12 DECODE(SUBSTR(v_char,5,1),'0','零',fn_con_num1(SUBSTR(v_char,5,1))||'十')||

13 DECODE(SUBSTR(v_char,6,1),'0','零',fn_con_num1(SUBSTR(v_char,6,1))||'万')||

14 DECODE(SUBSTR(v_char,7,1),'0','零',fn_con_num1(SUBSTR(v_char,7,1))||'千')||

15 DECODE(SUBSTR(v_char,8,1),'0','零',fn_con_num1(SUBSTR(v_char,8,1))||'佰')||

16 DECODE(SUBSTR(v_char,9,1),'0','零',fn_con_num1(SUBSTR(v_char,9,1))||'十')||

17 DECODE(SUBSTR(v_char,10,1),'0','',fn_con_num1(SUBSTR(v_char,10,1))) AS cvt

18 INTO v_char_cvt

19 FROM dual;

20 v_char_cvt:=RTRIM(LTRIM(v_char_cvt,'零'),'零');

21 WHILE INSTR(v_char_cvt,'零零')>=1 LOOP

22 v_char_cvt:=replace(v_char_cvt,'零零','零');

23 END LOOP;

24 RETURN v_char_cvt;

25 END;

26 /

Function created.

lym@TDWORA> SELECT fn_con_num2(2110028568) AS cvt FROM DUAL;

CVT

---------------------------------------------

贰十壹亿壹千零贰万捌千伍佰陆十捌



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有