oracle实现阿拉伯数字转化为大写汉字的函数

本文介绍了在Oracle数据库中实现阿拉伯数字转化为大写汉字的函数需求,包括专门转化年份的TO_UPPER_YEAR函数和通用的TO_UPPER_NUM函数,以满足货币金额等场景的大写显示要求。
摘要由CSDN通过智能技术生成

今天工作中遇到了要改货币金额转换为大写显示的需求,找到了一些前辈们的代码,总结了一下贴出来,以备以后查看学习使用.

 

1.专门用于转化年份的函数TO_UPPER_YEAR.

CREATE OR REPLACE FUNCTION TO_UPPER_YEAR(YEAR_IN  IN VARCHAR2)
 RETURN VARCHAR2
/**
 *年转化为大写汉字的函数 如将2008转换为二〇〇八
 *月份和日期转换的可以调用 TO_UPPER_NUM 函数
 *如SELECT TO_UPPER_NUM('21','2','2') FROM DUAL
 *查询系统大写年月日如下:
 *SELECT TO_UPPER_YEAR(TO_CHAR(SYSDATE,'YYYY')) || '年' ||
 *       TO_UPPER_NUM(TO_CHAR(SYSDATE,'MM'),'2','2') || '月' ||
 *       TO_UPPER_NUM(TO_CHAR(SYSDATE,'DD'),'2','2') || '日'  SJ
 *FROM DUAL
 */
IS
  TEMP     VARCHAR2(32767);
  RESULT   VARCHAR2(32767);
  STR      VARCHAR2(32767) := '〇一二三四五六七八九';
BEGIN
  IF YEAR_IN IS NULL THEN
    RETURN NULL;
  END IF;
  FOR I IN 1 .. LENGTH(YEAR_IN)
   LOOP
     SELECT SUBSTR(STR, SUBSTR(YEAR_IN,I, 1) + 1, 1)
       INTO TEMP
       FROM DUAL;
     RESULT := RESULT || TEMP;
   EN
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值