博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
转换大小写金额的过程
阅读量:6319 次
发布时间:2019-06-22

本文共 2458 字,大约阅读时间需要 8 分钟。

CREATE OR REPLACE FUNCTION money_to_chinese (money IN VARCHAR2)     RETURN VARCHAR2  IS     c_money    VARCHAR2 (12);     m_string   VARCHAR2 (60) := '分角圆拾佰仟万拾佰仟亿';     n_string   VARCHAR2 (40) := '壹贰叁肆伍陆柒捌玖';     b_string   VARCHAR2 (80);     n          CHAR;     len        NUMBER (3);     i          NUMBER (3);     tmp        NUMBER (12);     is_zero    BOOLEAN;     z_count    NUMBER (3);     l_money    NUMBER;     l_sign     VARCHAR2 (10);  BEGIN     l_money := ABS (money);       IF money < 0     THEN        l_sign := '负';     ELSE        l_sign := '';     END IF;       tmp := ROUND (l_money, 2) * 100;     c_money := RTRIM (LTRIM (TO_CHAR (tmp, '999999999999')));     len := LENGTH (c_money);     is_zero := TRUE;     z_count := 0;     i := 0;       WHILE i < len     LOOP        i := i + 1;        n := SUBSTR (c_money,                     i,                     1                    );          IF n = '0'        THEN           IF len - i = 6 OR len - i = 2 OR len = i           THEN              IF is_zero              THEN                 b_string := SUBSTR (b_string,                                     1,                                     LENGTH (b_string) - 1                                    );                 is_zero := FALSE;              END IF;                IF len - i = 6              THEN                 b_string := b_string || '万';              END IF;                IF len - i = 2              THEN                 b_string := b_string || '圆';              END IF;                IF len = i              THEN                 b_string := b_string || '整';              END IF;                z_count := 0;           ELSE              IF z_count = 0              THEN                 b_string := b_string || '零';                 is_zero := TRUE;              END IF;                z_count := z_count + 1;           END IF;        ELSE           b_string :=                 b_string              || SUBSTR (n_string,                         TO_NUMBER (n),                         1                        )              || SUBSTR (m_string,                         len - i + 1,                         1                        );           z_count := 0;           is_zero := FALSE;        END IF;     END LOOP;       b_string := l_sign || b_string;     RETURN b_string;  EXCEPTION     WHEN OTHERS     THEN        RETURN (SQLERRM);  END;/ 使用方法

SELECT money_to_chinese(ssje) as dx FROM ywdjb WHERE djh='02x1995052119950140'

 

 

 

 

转载地址:http://emdaa.baihongyu.com/

你可能感兴趣的文章
Spring MVC 数据绑定(四)
查看>>
Java遇见HTML——JSP篇之JavaBeans
查看>>
《C++ Primer Plus》第4章 学习笔记
查看>>
yii 项目根目录下需要有assets目录
查看>>
要重定向 IO 流,Process 对象必须将 UseShellExecute 属性设置为 False。
查看>>
C#中Windows Media Player控件使用实例|方法
查看>>
httpclient用getStatusCode
查看>>
3D引擎为什么使用三角形绘制曲面
查看>>
ios入门篇 -hello Word(1)
查看>>
【十五分钟Talkshow】在.NET应用程序中访问Excel的几种方式
查看>>
图数据库titan 和 rexster安装手册
查看>>
JS--switch 语句
查看>>
go-vim配置
查看>>
jetty配置jndi数据源
查看>>
php 调用系统命令 超时
查看>>
关于“性”
查看>>
android中级篇之多线程下载
查看>>
Silverlight删除数据表格中的数据,表格头部定义全选按钮,批量删除
查看>>
并查集
查看>>
《深入Ajax架构和最佳实践》读书笔记
查看>>