我的编程空间,编程开发者的网络收藏夹
学习永远不晚

oracle中文数字转阿拉伯数字

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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;

oracle中文数字转阿拉伯数字

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

oracle中文数字转阿拉伯数字

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

下载Word文档

猜你喜欢

罗马数字与阿拉伯数字转换

罗马数字与阿拉伯数字对应关系如下:且“II”表示2,“III”表示3,“IV”表示4,“VI表示6”,“VII”表示7,“VIII”表示8,“IX”表示9,其余的类似。阿拉伯数转换成罗马数字class Solution(object):
2023-01-31

python中文大写怎么转阿拉伯数字

本篇内容主要讲解“python中文大写怎么转阿拉伯数字”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python中文大写怎么转阿拉伯数字”吧!整数部分主要是利用正则表达式进行检索,将对应项的数字
2023-06-02

php汉字如何转阿拉伯数

这篇文章主要介绍“php汉字如何转阿拉伯数”,在日常操作中,相信很多人在php汉字如何转阿拉伯数问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php汉字如何转阿拉伯数”的疑惑有所帮助!接下来,请跟着小编一起来
2023-06-25

怎么在python中将中文数字转换成阿拉伯数字

本篇文章为大家展示了怎么在python中将中文数字转换成阿拉伯数字,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。正则表达式提取文本中的数字import rem0 = "在一九四九年新中国成立比一九九
2023-06-08

php 汉字怎么转阿拉伯数

php汉字转阿拉伯数的方法:1、创建一个PHP示例文件;2、初始化一个数组;3、将字符串按单位切分;4、将分组后的字符串转化成数字并乘以单位即可。
2017-05-15

学习python将中文数字转化成阿拉伯数字的方法

这篇文章将为大家详细讲解有关学习python将中文数字转化成阿拉伯数字的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。python将中文数字转化成阿拉伯数字正则表达式提取文本中的数字中文转化成阿拉伯数
2023-06-08

怎么在Python中利用cn2an将中文数字与阿拉伯数字进行转换

这篇文章主要介绍了怎么在Python中利用cn2an将中文数字与阿拉伯数字进行转换,此处通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考价值,需要的朋友可以参考下:python是什么意思Python是一种跨平台的、具有解释
2023-06-06

Python实现将罗马数字转换成普通阿拉伯数字的方法

本文实例讲述了Python实现将罗马数字转换成普通阿拉伯数字的方法。分享给大家供大家参考,具体如下: 罗马数字,我们在某些电视中或者现实生活中都曾经看到过,近日,学习Python时,也遇到了罗马数字的解说,于是顺便写了一个小程序来练习罗马数
2022-06-04

oracle文本如何转换为数字

要将Oracle文本转换为数字,可以使用TO_NUMBER函数。该函数的语法为:TO_NUMBER(文本, 格式模板)。例如,如果要将文本“123”转换为数字,可以使用以下语句:SELECT TO_NUMBER('123
oracle文本如何转换为数字
2024-04-30

php中文字符如何转换成数字

小编给大家分享一下php中文字符如何转换成数字,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!php中文字符转换成数字的方法:首先创建一个PHP示例文件;然后通过“function cn2num($string){...}”
2023-06-14

oracle字符怎么转换成数字

在Oracle数据库中,可以使用TO_NUMBER()函数将字符数据类型转换为数字数据类型。以下是关于TO_NUMBER()函数的一些详细信息:语法:TO_NUMBER(expression, format_mask)参数:express
oracle字符怎么转换成数字
2024-03-05

oracle中怎么把字符串转换成数字

在 Oracle 中,可以使用 TO_NUMBER 函数将字符串转换为数字。语法如下:TO_NUMBER(string, format)其中,string 为要转换的字符串,’format’ 为数字格式。例如:SELECT TO_NUM
oracle中怎么把字符串转换成数字
2024-04-15

oracle中字符转数字的方法是什么

在Oracle数据库中,可以使用以下方法将字符转换为数字:1. 使用TO_NUMBER函数:TO_NUMBER函数将一个字符串参数转换为对应的数字类型。语法如下:```sqlTO_NUMBER(string, [format_mask],
2023-08-29

oracle中如何把字符串转换成数字

oracle提供多种方法将字符串转换为数字:to_number 函数:使用指定格式模型将字符串转换为数字类型。numtostr 函数:将字符串转换为数字类型,并转换为字符串。val 函数:直接将字符串转换为数字类型,但不检查格式。如何将字符
oracle中如何把字符串转换成数字
2024-05-08

SQL 数字转为中文大写

USE [SPECIAL_BLD]GOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE FUNCTION [dbo].[get_upper] (@num numeric(18,5))RETURNS VARC
2015-04-10

oracle字符串怎么转化为数字

在Oracle数据库中,可以使用TO_NUMBER函数将字符串转换为数字。语法如下:TO_NUMBER(string, [format_mask], [nls_parameter])其中,string为要转换的字符串,format_mas
oracle字符串怎么转化为数字
2024-04-09

编程热搜

目录