Oracle数字金额转为汉字展示「终于解决」

Oracle数字金额转为汉字展示「终于解决」
CREATE OR REPLACE FUNCTION “F_UPPER_MONEY_NEW”(I_NUM in number default null ) …

	Oracle数字金额转为汉字展示[数据库教程]

CREATE OR REPLACE FUNCTION “F_UPPER_MONEY_NEW”(I_NUM in number default null )
return nvarchar2 is
/*
处理数字金额转换为汉字表达
–情况1.保留元角分 (默认) 10240035001421.1 //壹拾万贰仟肆佰亿参仟伍佰万壹仟肆佰贰拾壹元壹角零分
–情况2.情况1上调整角分没有则不保留
–情况3.单位全保留 (包含substr中所有)
样例1 130034000600.04 壹仟参佰亿参仟肆佰万陆佰元零角肆分
*/
Result varchar2(100); –返回字符串
V_TEMNUM varchar2(100); –四舍五入到小数点后2位并去除小数点
v_str1s varchar2(36) := ‘零壹贰参肆伍陆柒捌玖‘; –数字汉字表示
v_str2s varchar2(50) := ‘分角元拾佰仟万拾佰仟亿拾佰仟万拾佰仟‘; –数字单位
V_STR_N VARCHAR2(3):=‘‘;
v_num number := 1; –计数
v_len number; –长度
v_str1 varchar2(3); –中文单数字字符
v_str2 varchar2(3); –单位
v_numround varchar2(3); —
v_errmsg varchar2(200); –错误消息

begin
— 为空返回空值
if I_NUM is null then
return null;
end if;
–格式化输入参数
IF I_NUM<0 THEN
V_STR_N:=‘负‘;
END IF;
V_TEMNUM := round(I_NUM, 2) * 100;

v_len := length(V_TEMNUM);
while 0 < v_len loop
v_numround := substr(V_TEMNUM, v_len, 1);
v_str1 := substr(v_str1s, v_numround + 1, 1);
v_str2 := substr(v_str2s, v_num, 1);
–处理特殊情况 (情况3不需要处理特殊情况)
IF v_str1 = ‘零‘ AND v_num >= 3 THEN –v_num>=3 去除支持情况2
IF V_STR2 IN (‘仟‘, ‘佰‘, ‘拾‘) THEN
IF SUBSTR(Result,1,1) IN (‘零‘,‘元‘,‘万‘,‘亿‘) THEN
v_str1 := ‘‘;
v_str2 := ‘‘;
ELSE
v_str1 := ‘零‘;
v_str2 := ‘‘;
END IF;
ELSIF V_STR2 IN (‘亿‘, ‘万‘, ‘元‘) THEN
V_STR1 := ‘‘;
END IF;
END IF;
Result := v_str1 || v_str2 || Result;
v_len := v_len – 1;
v_num := v_num + 1;
end loop;
return V_STR_N||Result;
exception
when others then
–实际应用返回根据情况调整
v_errmsg:=substr(sqlerrm,1,200);
–return ‘‘;
raise_application_error(1000,v_errmsg);
end F_UPPER_MONEY_NEW;

Oracle数字金额转为汉字展示

原文地址:https://www.cnblogs.com/ZwyBky/p/14125308.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/6585.html

(0)
上一篇 2023-04-06
下一篇 2023-04-07

相关推荐

  • Python tkinterpack基础入门

    Python tkinterpack基础入门如果你想学习Python GUI编程,那么Tkinter是一个非常好的选择。Tkinter作为Python内置的GUI工具包,其简易性、可移植性和可扩展性都是极为出色的。

    2024-06-13
    55
  • 【Gap锁】Mysql的Gap锁在中文列下间隙怎样确定?「建议收藏」

    【Gap锁】Mysql的Gap锁在中文列下间隙怎样确定?「建议收藏」通过本文记录一次Gaplock的验证,网上大多gaplock是基于明确是数字型列来测试gaplock的,这里不再重复,随便贴个相关地址:https://www.cnblogs.com/crazylqy

    2022-12-26
    140
  • 达梦数据库备份还原命令_达梦数据库值得入职吗

    达梦数据库备份还原命令_达梦数据库值得入职吗
    备份还原 1 物理备份与还原 2 1、脱机备份与还原(冷备) 2 1.1、console工具备份 2 1.2、console工具还原与恢复 3 1.3、dm…

    2023-04-08
    131
  • Hadoop入门之hdfs[通俗易懂]

    Hadoop入门之hdfs[通俗易懂]大数据技术开篇之Hadoop入门【hdfs】 学习都是从了解到熟悉的过程,而学习一项新的技术的时候都是从这个技术是什么?可以干什么?怎么用?如何优化?这几点开始。今天这篇文章分为两个部分。一、hado

    2023-02-14
    143
  • 用Python打造高效代理工具ProxyOmega

    用Python打造高效代理工具ProxyOmega网络代理是一种将自己的网络请求转发到其它网络节点的途径,它通常被用于科学上网、隐私保护、爬虫、测试等场景中。作为开发者,我们需要掌握代理技术和代理工具的使用,以便更好地完成开发任务。本文将介绍一款用Python打造的高效代理工具ProxyOmega,通过详细讲解其使用过程,帮助读者更好地理解和使用代理工具。

    2024-07-27
    25
  • 5G手机芯片如何选择?「建议收藏」

    5G手机芯片如何选择?「建议收藏」     2020年随着我国5G网络的快速发展,越来越多的5G手机出现在大众视野中。很多人都将5G手机作为换机的首选。当今阶段,5G手机芯片很大程度决定了5G手机的性能,作为消费者应该如何选择5G手…

    2023-02-18
    150
  • 使用Python位或运算符计算数字之间的按位或操作

    使用Python位或运算符计算数字之间的按位或操作位或运算符是计算机语言中常用的运算符之一,它用来对两个数的每个对应位进行逻辑或运算,如果两个对应位中其中一个为1,则结果为1,否则为0。

    2024-01-01
    109
  • Python Sort实现列表排序

    Python Sort实现列表排序在Python中,提供了多种排序算法,每种算法根据不同的需求和数据类型适用。以下介绍几种较为常见的排序算法:

    2024-03-17
    69

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注