iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >plsql小写金额转大写金额函数
  • 375
分享到

plsql小写金额转大写金额函数

2023-06-05 14:06:50 375人浏览 安东尼
摘要

create or replace function comm.F_upper_money(p_num in number default null)  return nvarchar2 is &nb


  • create or replace function comm.F_upper_money(p_num in number default null)
  •   return nvarchar2 is
  •   
  •   Result nvarchar2(100); --返回字符串
  •   num_round nvarchar2(100) := to_char(abs(round(p_num, 2))); --转换数字为小数点后2位的字符(正数)
  •   num_left nvarchar2(100); --小数点左边的数字
  •   num_right nvarchar2(2); --小数点右边的数字
  •   str1 nchar(10) := '零壹贰叁肆伍陆柒捌玖'; --数字大写
  •   str2 nchar(16) := '元拾佰仟万拾佰仟亿拾佰仟万拾佰仟'; --数字位数(从低至高)
  •   num_pre number(1) := 1; --前一位上的数字
  •   num_current number(1); --当前位上的数字
  •   num_count number := 0; --当前数字位数

  • begin
  •   if p_num is null then
  •     return null;
  •   end if; --转换数字为null时返回null

  •   select to_char(nvl(substr(to_char(num_round),
  •                             1,
  •                             decode(instr(to_char(num_round), '.'),
  •                                    0,
  •                                    length(num_round),
  •                                    instr(to_char(num_round), '.') - 1)),
  •                      0))
  •     into num_left
  •     from dual; --取得小数点左边的数字
  •   select substr(to_char(num_round),
  •                 decode(instr(to_char(num_round), '.'),
  •                        0,
  •                        length(num_round) + 1,
  •                        instr(to_char(num_round), '.') + 1),
  •                 2)
  •     into num_right
  •     from dual; --取得小数点右边的数字

  •   if length(num_left) > 16 then
  •     return '**********';
  •   end if; --数字整数部分超过16位时

  •   --采用从低至高的算法,先处理小数点右边的数字
  •   if length(num_right) = 2 then
  •     if to_number(substr(num_right, 1, 1)) = 0 then
  •       result := '零' ||
  •                 substr(str1, to_number(substr(num_right, 2, 1)) + 1, 1) || '分';
  •     else
  •       result := substr(str1, to_number(substr(num_right, 1, 1)) + 1, 1) || '角' ||
  •                 substr(str1, to_number(substr(num_right, 2, 1)) + 1, 1) || '分';
  •     end if;
  •   elsif length(num_right) = 1 then
  •     result := substr(str1, to_number(substr(num_right, 1, 1)) + 1, 1) || '角整';
  •   else
  •     result := '整';
  •   end if;
  •   --再处理小数点左边的数字
  •   for i in reverse 1 .. length(num_left) loop
  •     --(从低至高)
  •     num_count := num_count + 1; --当前数字位数
  •     num_current := to_number(substr(num_left, i, 1)); --当前位上的数字
  •     if num_current > 0 then
  •       --当前位上数字不为0按正常处理
  •       result := substr(str1, num_current + 1, 1) ||
  •                 substr(str2, num_count, 1) || result;
  •     else
  •       --当前位上数字为0时
  •       if mod(num_count - 1, 4) = 0 then
  •         --当前位是元、万或亿时
  •         result := substr(str2, num_count, 1) || result;
  •         num_pre := 0; --元、万,亿前不准加零
  •       end if;
  •       if num_pre > 0 or length(num_left) = 1 then
  •         --上一位数字不为0或只有个位时
  •         result := substr(str1, num_current + 1, 1) || result;
  •       end if;
  •     end if;
  •     num_pre := num_current;
  •   end loop;

  •   if p_num < 0 then
  •     --转换数字是负数时
  •     result := '负' || result;
  •   end if;

  •   return Result;

  • exception
  •   when others then
  •     raise_application_error(-20001, '数字转换大写出现错误!' || sqlerrm);
  • end;
  • --结束END--

    本文标题: plsql小写金额转大写金额函数

    本文链接: https://www.lsjlt.com/news/243004.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • plsql小写金额转大写金额函数
      create or replace function comm.F_upper_money(p_num in number default null)  return nvarchar2 is &nb...
      99+
      2023-06-05
    • Python中怎么转换金额大小写
      Python中怎么转换金额大小写,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。代码CODE:  def IIf( b, s...
      99+
      2023-06-17
    • vue input金额怎么转大写
      前言在前端开发中,我们经常需要让用户输入金额,一般情况下都会使用 input 输入框来完成。但是,由于 input 输入框输入金额的数据类型是 Number,直接将其展示成大写金额,不仅难以实现,而且还十分麻烦。因此,我们需要一个可以将 i...
      99+
      2023-05-14
    • vue input金额如何转大写
      本篇内容主要讲解“vue input金额如何转大写”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue input金额如何转大写”吧!实现思路该组件实现的主要思路是,通过监听 input 输入框...
      99+
      2023-07-06
    • 使用Java如何实现转换金额的大小写
      这篇文章给大家介绍使用Java如何实现转换金额的大小写,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。具体内容如下 public class MoneyUtil { private static final S...
      99+
      2023-05-31
      java 大小转换 ava
    • vue将数字转为中文大写金额方式
      目录将数字转为中文大写金额数字(金额)大小写实时转换将数字转为中文大写金额 记得引入vue.js文件 <html lang="en"> <head> <...
      99+
      2022-11-13
      vue数字 vue中文大写金额 vue数字中文大写
    • 利用java怎么将数字金额转转换为大写
      这篇文章将为大家详细讲解有关利用java怎么将数字金额转转换为大写,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。将数字金额大写,如下:public class Test { pri...
      99+
      2023-05-31
      java ava
    • vue金额格式化保留两位小数的实现
      目录金额格式化保留两位小数自定义过滤器 格式化金额(保留两位小数)金额格式化保留两位小数 Vue.filter("number", function(data) {     retu...
      99+
      2024-04-02
    • python中大写转小写函数
      在python中,lower()函数可将字符串中的大写字母转换为小写。该函数不会改变原始字符串,而是返回一个新字符串,其中所有大写字母都已转换为小写。它是一个字符串对象的内置方法,可以直...
      99+
      2024-04-02
    • JavaScript如何格式化数字、金额、千分位、保留几位小数、舍入舍去
      小编给大家分享一下JavaScript如何格式化数字、金额、千分位、保留几位小数、舍入舍去,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解...
      99+
      2024-04-02
    • php 小写数字如何转大写
      这篇文章给大家分享的是有关php 小写数字如何转大写的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。php小写数字转大写的实现方法:首先创建一个PHP示例文件;然后通过“private function getCh...
      99+
      2023-06-08
    • lotus 中日期小写转大写的函数及算法
      这篇文章主要介绍“lotus 中日期小写转大写的函数及算法”,在日常操作中,相信很多人在lotus 中日期小写转大写的函数及算法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”lotus 中日期小写转大写的函数...
      99+
      2023-06-03
    • 利用正则表达式校验金额最多保留两位小数实例代码
      目录正则表达式校验金额最多保留两位小数,那么必须满足如下条件:部分正则表达式符号说明:第一步,小数点之前表达式第二步,小数点及小数位置总结先给出表达式结果:^(([1-9]{1}\d...
      99+
      2022-11-13
      金额最多两位小数正则表达式 正则表达式小数如何匹配 正则检验保留2位小数
    • oracle大小写转换函数怎么使用
      Oracle中有三个函数可以进行大小写转换,分别是UPPER、LOWER和INITCAP。 UPPER函数:将字符串中所有的字符转...
      99+
      2024-03-12
      oracle
    • Oracle中大小写转换函数有哪些
      这篇文章将为大家详细讲解有关Oracle中大小写转换函数有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。大小写转换函数      LOWER ...
      99+
      2023-06-03
    • mysql数据库如何实现小写转大写
      这篇文章主要为大家展示了“mysql数据库如何实现小写转大写”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“mysql数据库如何实现小写转大写”这篇文章吧。 ...
      99+
      2024-04-02
    • php 数字如何转大写函数
      本文将为大家详细介绍“php 数字如何转大写函数”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“php 数字如何转大写函数”能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体内容如下,一起去收获新知识吧...
      99+
      2023-06-06
    • PHP中的大小写转换函数怎么使用
      今天小编给大家分享一下PHP中的大小写转换函数怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。PHP中的大小写转换函数...
      99+
      2023-07-05
    • 怎么使用C语言函数将字符转为大写或小写
      这篇文章主要介绍“怎么使用C语言函数将字符转为大写或小写”,在日常操作中,相信很多人在怎么使用C语言函数将字符转为大写或小写问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用C语言函数将字符转为大写或小写...
      99+
      2023-06-17
    • Oracle 中怎么实现一个大小写转换函数
      本篇文章给大家分享的是有关Oracle 中怎么实现一个大小写转换函数,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Oracle 大小写转换函数...
      99+
      2024-04-02
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作