查看: 5121|回复: 5

[SQL] oracle 大写金额转换成小写的方法

[复制链接]
论坛徽章:
0
发表于 2017-8-4 10:44 | 显示全部楼层 |阅读模式
查了半天都是小写转大写 ,求一个大写转小写的。。。
求职 : 数据库开发
论坛徽章:
17
优秀写手
日期:2014-02-27 06:00:13秀才
日期:2017-08-11 15:37:32弗兰奇
日期:2017-07-04 09:16:01秀才
日期:2017-06-29 10:16:48乌索普
日期:2017-05-26 08:58:24娜美
日期:2017-05-18 16:07:23ITPUB15周年纪念
日期:2017-05-02 15:22:36妮可·罗宾
日期:2017-04-06 10:06:19处女座
日期:2016-03-10 09:03:26白羊座
日期:2015-10-10 15:01:39
发表于 2017-8-4 15:43 | 显示全部楼层
贰仟贰佰壹拾叁圆肆角壹分 这种的? 自己写一个function实现吧

使用道具 举报

回复
论坛徽章:
0
发表于 2017-8-16 09:36 | 显示全部楼层
查了半天都是小写转大写,,,反过来就行了

使用道具 举报

回复
论坛徽章:
401
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
发表于 2017-8-16 14:12 | 显示全部楼层
英文好像也不能把one two 转成 1 2

使用道具 举报

回复
论坛徽章:
0
发表于 2017-10-9 13:41 | 显示全部楼层
mark下,看看到底怎么实现的

使用道具 举报

回复
求职 : 数据库开发
论坛徽章:
17
优秀写手
日期:2014-02-27 06:00:13秀才
日期:2017-08-11 15:37:32弗兰奇
日期:2017-07-04 09:16:01秀才
日期:2017-06-29 10:16:48乌索普
日期:2017-05-26 08:58:24娜美
日期:2017-05-18 16:07:23ITPUB15周年纪念
日期:2017-05-02 15:22:36妮可·罗宾
日期:2017-04-06 10:06:19处女座
日期:2016-03-10 09:03:26白羊座
日期:2015-10-10 15:01:39
发表于 2017-10-10 09:58 | 显示全部楼层
  1. DECLARE
  2.   S  VARCHAR2(100) := '贰仟贰佰壹拾叁圆肆角壹分';
  3.   S1 VARCHAR2(10);
  4.   V  NUMBER;
  5.   V1 NUMBER;
  6.   R  NUMBER := 0;
  7.   TYPE VARRAY_TYPE IS VARRAY(10) OF VARCHAR2(10);
  8.   VAR1 VARRAY_TYPE := VARRAY_TYPE('壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖');
  9.   VAR2 VARRAY_TYPE := VARRAY_TYPE('拾', '佰', '仟', '万', '亿', '圆', '角', '分');
  10.   FUNCTION INDEXOF
  11.   (
  12.     F_VAR_VALUE IN VARCHAR2,
  13.     V           IN VARRAY_TYPE
  14.   ) RETURN NUMBER IS
  15.   BEGIN
  16.     FOR I IN 1 .. V.COUNT LOOP
  17.       IF V(I) = F_VAR_VALUE THEN
  18.         RETURN I;
  19.       END IF;
  20.     END LOOP;
  21.     RETURN 0;
  22.   END;
  23. BEGIN
  24.   FOR I IN 1 .. LENGTH(S) LOOP
  25.     S1 := SUBSTR(S, -I, 1);
  26.     V  := INDEXOF(S1, VAR2);
  27.     IF V > 0 THEN
  28.       SELECT POWER(10, DECODE(V, 5, 8, 6, 0, 7, -1, 8, -2, V))
  29.       INTO   V1
  30.       FROM   DUAL;
  31.     END IF;
  32.     V := INDEXOF(S1, VAR1);
  33.     IF V > 0 THEN
  34.       R := R + V * V1;
  35.     END IF;
  36.   END LOOP;
  37.   DBMS_OUTPUT.PUT_LINE(R);
  38. END;
复制代码

有闲写了一个

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

【有奖讨论】解决存储挑战了解一下
奖品:米家车载空气净化器 、米家声波电动牙刷 、小米运动蓝牙耳机

在数字经济时代,井喷式增长的数据,在释放大量商业价值的同时,也随之对企业的IT基础设施带来了不容忽视的挑战!如何存储、管理、使用这些数据呢?这是一条比以往更艰难的路~

活动时间:9月20日-10月11日

参与讨论>>
TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 
京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表