oracle中文数字转阿拉伯数字
CREATE OR REPLACE FUNCTION chi2num(chivalue IN VARCHAR2) RETURN NUMBER IS
TYPE MAP IS TABLE OF BINARY_INTEGER INDEX BY VARCHAR2(10);
ling_jiu_map MAP;
shibaiqian_map MAP;
wanyizhao_map MAP;
--临时变量
i INT := 0; --'临时变量
k INT := 0; --临时变量
x INT := 0; --临时变量
str VARCHAR2(100) := ''; --临时变量
tmp INT := 0; --临时变量
tmp2 INT := 0; --临时变量
integer_part VARCHAR2(100) := ''; --数字形式整数部分
float_part VARCHAR2(100) := ''; --数字形式小数部分
returnvalue NUMBER := 0; --返回值
BEGIN
--初始化数组
ling_jiu_map('零') := 0;
ling_jiu_map('一') := 1;
ling_jiu_map('二') := 2;
ling_jiu_map('三') := 3;
ling_jiu_map('四') := 4;
ling_jiu_map('五') := 5;
ling_jiu_map('六') := 6;
ling_jiu_map('七') := 7;
ling_jiu_map('八') := 8;
ling_jiu_map('九') := 9;
shibaiqian_map('') := 0;
shibaiqian_map('十') := 1;
shibaiqian_map('百') := 2;
shibaiqian_map('千') := 3;
wanyizhao_map('') := 0;
wanyizhao_map('万') := 1;
wanyizhao_map('亿') := 2;
wanyizhao_map('兆') := 3;
str := REGEXP_REPLACE(chivalue, '^十', '一十');
str := REGEXP_REPLACE(str, '零十', '零一十');
--将数字拆分为整数与浮点数两个数字数组
i := INSTR(str, '点', 1);
IF i = 0 THEN
integer_part := SUBSTR(str, 1);
ELSE
integer_part := SUBSTR(str, 1, i - 1);
float_part := SUBSTR(str, i + 1);
END IF;
--整型部分
x := LENGTH(integer_part);
str := '';
tmp := 0;
tmp2 := 0;
FOR k IN 1 .. x LOOP
str := SUBSTR(integer_part, k, 1);
IF str IN ('万', '亿', '兆') THEN
--当碰到万亿兆时
tmp := tmp + tmp2;
returnvalue := returnvalue + tmp * POWER(10000, wanyizhao_map(str));
tmp := 0;
tmp2 := 0;
ELSIF str IN ('十', '百', '千') THEN
--当碰到十百千时
tmp := tmp + tmp2 * POWER(10, shibaiqian_map(str));
tmp2 := 0;
ELSE
--当碰到数字时
tmp2 := ling_jiu_map(str);
END IF;
END LOOP;
--最后将没有小于万位数加到整数中去
tmp := tmp + tmp2;
returnvalue := returnvalue + tmp;
IF float_part IS NOT NULL THEN
--计算小数部分
k := 0;
tmp := '';
FOR k IN 1 .. LENGTH(float_part) LOOP
tmp := tmp || ling_jiu_map(SUBSTR(float_part, k, 1));
END LOOP;
returnvalue := returnvalue || '.' || tmp;
END IF;
RETURN returnvalue;
END;
转载于:https://blog.51cto.com/sparkkang/1768030
oracle中文数字转阿拉伯数字相关推荐
- 阿拉伯数字中文oracle,【oracle】中文数字转阿拉伯数字
简体中文数字转阿拉伯数字,分为两个存储过程,一个是处理小数位的,一个是处理整数位的,加入部分检错处理,没有穷举所有非法输入,支持数据大小为:number型支持到多少就支持到多少,这是个写得比较好的转换 ...
- python数字转中文字符_Python实现中文数字转换为阿拉伯数字的方法示例
本文实例讲述了Python实现中文数字转换为阿拉伯数字的方法.分享给大家供大家参考,具体如下: 一.需求 今天写了三千二百行代码. 今天写了3200行代码. 两行意思相同,只是表达方式不太能够,统一掉 ...
- python数字转换_Python实现中文数字转换为阿拉伯数字的方法示例
本文实例讲述了Python实现中文数字转换为阿拉伯数字的方法.分享给大家供大家参考,具体如下: 一.需求 今天写了三千二百行代码. 今天写了3200行代码. 两行意思相同,只是表达方式不太能够,统一掉 ...
- 中文数字与阿拉伯数字转换(Python)
cn2an 是一个快速转化 中文数字 和 阿拉伯数字 的工具包 相关链接 cn2an工具包Github地址 在线测试平台 install git clone https://github.com/Ai ...
- android数字转汉字,【原创】最精简的中文数字和阿拉伯数字互相转换函数
public class ChineseNumUtils { /** * 中文数字转阿拉伯数字 * (长度不能超过long最大值) * * @param chNum 中文数字 * @return 阿拉 ...
- java中文数字与阿拉伯数字相互转换
最近有一个业务需要用到中文数字与阿拉伯数字相互转换,废话不多说直接上代码. 中文数字/阿拉伯数字互转第一次完善:https://blog.csdn.net/qq_26896085/article/de ...
- c# 中文数字转阿拉伯数字
最近迷上了看网络小说,手机上的小说阅读器全都是收费的,所以决定下载下载再导入到手机上,可是能下载到的现成的TXT格式小说全都被打了广告,仔细看的时候像一些"首"."发&q ...
- cn2.php中文,Python使用cn2an实现中文数字与阿拉伯数字的相互转换
工作中经常遇到阿拉伯数字转换称为中文数字或者大写金额,在网上搜了下,cn2an口碑较好,遂进行了一番学习. 安装 pip install cn2an 依赖库为setuptools.PyYAML 查看版 ...
- 使用cn2an实现中文数字与阿拉伯数字的相互转换
工作中经常遇到阿拉伯数字转换称为中文数字或者大写金额,在网上搜了下,cn2an口碑较好,遂进行了一番学习. 安装 pip install cn2an 依赖库为setuptools.PyYAML 查看版 ...
最新文章
- 服务器架设笔记——编译Apache及其插件
- java dao层_JavaWeb Dao层架构设计
- QT的QNetworkAccessManager类的使用
- linux之awk命令学习笔记
- unity 编辑器扩展 扩展摄像机的属性查看器
- 前端学习(1710):前端系列javascript之uniapp介绍
- java获取网络图片_有了这50套Java毕设项目(源码 案例),offer拿到手软,无偿分享...
- Git上传文件到GitHub失败问题解决
- 2017计算机基础教学大纲,2017级大学计算机基础教学大纲
- “内心强大的人”依然会被移出首页
- python部落课程资源_python部落刷题宝学到的内置函数
- energy plus matlab,Energyplus教程系列1—Energyplus到底能干啥.ppt
- Android手机安装.pem证书文件
- andserver FileBrowser 图片浏览
- 小博老师解读经典Java面试题—Java位运算
- Centos8 安装 MySQL8.0.26
- 洛谷 P3518 [POI2011] SEJ-Strongbox 题解
- 苹果8plus什么用计算机,iphone8plus怎么把手机投屏到电脑显示器
- 笑出腹肌的 Emoji 表情符号,你值得拥有
- 资料员培训建筑八大员培训资料员港航工程资料管理存在的问题
热门文章
- 一、C语言结构体数组
- linux基本功系列之uniq命令实战
- jQuery:设置获取属性、遍历添加删除元素、尺寸、位置
- 电路分析 极简复习指导、公式推导、常用结论归纳 第三章 电阻电路的一般分析
- 通俗易懂讲解均方误差 (MSE)
- 基于粤嵌gec6818开发板嵌入式开发电子相册,音乐播放,视频播放,2048游戏
- 服务器安装 Centos7 时引导错误以及解决方案(报错:no such device)
- 依协变量(time-dependent covariables) 兼谈分层Cox回归 依时变量
- 编码器+EasyDSS平台如何实现异地公网大屏同屏直播?
- 日语键盘的Macbook如何输入英文反斜线('\')