oracle中将数字金额转换为中文大写函数

orcale 金额格式化处理 orcale 金额格式化处理 个人认为金额格式的处理,一般情况下前端直接处理就好。之所以在这里写orcale金额处理,主要是因为涉及到了excel导出。两种处理方式,在java代码中处理,感觉这样写太丑了。所以果断选择通过sql处理。 1.准备要操作的表以及数据 CREATE TABLE "TEST" ( "TOTAL_MONEY" NUMBER ); Insert into TE... 阅读详情

oracle中有一个将数字金额转换为中文形式的内部函数 money_to_chinese

此方法出处:http://hi.baidu.com/hangdoudou/blog/item/82e2c36ec001ecde80cb4a65.html

Sql代码
  1. CREATE OR REPLACE FUNCTION money_to_chinese (money IN VARCHAR2)   
  2.    RETURN VARCHAR2   
  3. IS  
  4.    c_money    VARCHAR2 (12);   
  5.    m_string   VARCHAR2 (60) := '分角圆拾佰仟万拾佰仟亿';   
  6.    n_string   VARCHAR2 (40) := '壹贰叁肆伍陆柒捌玖';   
  7.    b_string   VARCHAR2 (80);   
  8.    n          CHAR;   
  9.    len        NUMBER (3);   
  10.    i          NUMBER (3);   
  11.    tmp        NUMBER (12);   
  12.    is_zero    BOOLEAN;   
  13.    z_count    NUMBER (3);   
  14.    l_money    NUMBER;   
  15.    l_sign     VARCHAR2 (10);   
  16. BEGIN  
  17.    l_money := ABS (money);   
  18.   
  19.    IF money < 0   
  20.    THEN  
  21.       l_sign := '负';   
  22.    ELSE  
  23.       l_sign := '';   
  24.    END IF;   
  25.   
  26.    tmp := ROUND (l_money, 2) * 100;   
  27.    c_money := RTRIM (LTRIM (TO_CHAR (tmp, '999999999999')));   
  28.    len := LENGTH (c_money);   
  29.    is_zero := TRUE;   
  30.    z_count := 0;   
  31.    i := 0;   
  32.   
  33.    WHILE i < len   
  34.    LOOP   
  35.       i := i + 1;   
  36.       n := SUBSTR (c_money,   
  37.                    i,   
  38.                    1   
  39.                   );   
  40.   
  41.       IF n = '0'  
  42.       THEN  
  43.          IF len - i = 6 OR len - i = 2 OR len = i   
  44.          THEN  
  45.             IF is_zero   
  46.             THEN  
  47.                b_string := SUBSTR (b_string,   
  48.                                    1,   
  49.                                    LENGTH (b_string) - 1   
  50.                                   );   
  51.                is_zero := FALSE;   
  52.             END IF;   
  53.   
  54.             IF len - i = 6   
  55.             THEN  
  56.                b_string := b_string || '万';   
  57.             END IF;   
  58.   
  59.             IF len - i = 2   
  60.             THEN  
  61.                b_string := b_string || '圆';   
  62.             END IF;   
  63.   
  64.             IF len = i   
  65.             THEN  
  66.                b_string := b_string || '整';   
  67.             END IF;   
  68.   
  69.             z_count := 0;   
  70.          ELSE  
  71.             IF z_count = 0   
  72.             THEN  
  73.                b_string := b_string || '零';   
  74.                is_zero := TRUE;   
  75.             END IF;   
  76.   
  77.             z_count := z_count + 1;   
  78.          END IF;   
  79.       ELSE  
  80.          b_string :=   
  81.                b_string   
  82.             || SUBSTR (n_string,   
  83.                        TO_NUMBER (n),   
  84.                        1   
  85.                       )   
  86.             || SUBSTR (m_string,   
  87.                        len - i + 1,   
  88.                        1   
  89.                       );   
  90.          z_count := 0;   
  91.          is_zero := FALSE;   
  92.       END IF;   
  93.    END LOOP;   
  94.   
  95.    b_string := l_sign || b_string;   
  96.    RETURN b_string;   
  97. EXCEPTION   
  98.    WHEN OTHERS   
  99.    THEN  
  100.       RETURN (SQLERRM);   
  101. END;  
oracle 数字金额转为汉字大写 将数字金额转化为汉字大写金额,用于理财程序的金额转化。 立即下载

相关推荐

oracle数字转换中文

oracle数字转换中文,用我们更好地开发财务模块

mysql数字转换中文版_mysql 阿拉伯数字转换中文函数

CREATE DEFINER=`root`@`%` FUNCTION `sp_cn`(n_LowerMoney decimal(15,2)) RETURNS varchar(200) CHARSET utf8beginDeclare v_LowerStr VARCHAR(200) ;Declare v_UpperPart VARCHAR(200) ;Declare v_UpperStr VAR...

weixin_36403956的博客 1195

手把手教你编写PCIe设备驱动:基于Linux内核的实战教程

本文详细介绍了基于Linux内核的PCIe设备驱动开发全流程,包括环境准备、设备探测、中断处理、DMA配置等核心内容。通过实战代码示例和Makefile编写指南,帮助开发者快速掌握PCIe驱动开发技术,实现高性能设备驱动开发与优化。

weixin_30687051的博客 194

ORACLE转中文大写金额

示例(函数不含角分,可自行添加)

weixin_43683329的博客 900

终端效率神器:Tmux 安装与使用全指南

终端效率神器:Tmux 安装与使用全指南

身在被窝_心在编程 1360

彻底卸载Ubuntu双系统,并完美回收100G空间给D盘

本文记录了安全卸载Ubuntu双系统并回收磁盘空间的全过程。作者首先通过Windows命令行彻底清除Ubuntu启动项,避免GRUB引导报错;随后在磁盘管理中删除Linux分区,将100G未分配空间合并至相邻的D盘。针对C盘空间不足问题,作者采用Dism++清理系统文件,并将用户文档、聊天记录等迁移至扩容后的D盘。最终实现了引导纯净、空间合理分配的目标,特别强调分区扩展必须遵循"相邻原则",建议通过间接迁移而非直接扩容来优化系统盘空间管理。

2403_85993278的博客 1512

Oracle实现小写金额转换成大写的方法

Oracle实现小写金额转换成大写的方法,代码如下: CREATE OR REPLACE FUNCTION convert_money(n_LowerMoney IN NUMBER,                                          v_TransType  IN NUMBER DEFAULT 1 -- 1: directly translate, 0: r

霜知坚冰的专栏 1841

电子取证之服务器取证思路

服务器取证是一个技术性很强的领域,涉及到多个环节,包括网站重构、网站代码分析、容器分析等。数据库密码的获取通常通过查看配置文件、日志文件、备份等途径,同时可以通过一些绕过技术如禁用身份验证来获取权限。对于不同的数据库,需要根据其特性采取相应的应对方法和命令。

2401_84830066的博客 2490

Oracle中金额数字转换为大写汉字

这个版本的函数,解决的问题。

weixin_43038063的博客 141

三种 绘制奈奎斯特曲线 的方法

如何绘制Nyquist曲线 提供三种绘制方法,其中使用最广泛的是概略图绘制方法 ①解析法绘制 ②概略图法绘制 ③MATLAB绘制

weixin_46664967的博客 6万+

SPAD IMX479规格_VOP

对于VOP的定义,很多人可能是不理解这一路的供电,实际上这一路供电是非常重要的,这是给器件SPAD供电,决定SPAD是否work,在大部分的paper以及大部分公司,基本都是叫VOP,名称是SPAD breakdown voltage power supply,严格意义上叫Operating Voltage,工作电压。当然有些公司也有一些其他叫法就不提了。其实大家可以明显的看出,典型值-20.5没有发生变化,市面上绝大多数VOP的典型值也都是在-20V这边。

致力于lidar应用开发 701

oracle 字符串中数字转中文大写,金额钱数转中文大写

oracle 中字符串保函数字和非数字,现将字符串中数字转成中文的大写 CREATE OR REPLACE FUNCTION TO_UPPER_CNY(YEAR_IN IN VARCHAR2) RETURN VARCHAR2 IS TEMP VARCHAR2(32767); RESULT VARCHAR2(32767); --STR VARCHAR2(32767) := '〇一二三四五六七八九'; STR VARCHAR2(32767) := '零壹

nicevalerie的博客 2630

DFIG风电场经LCC-HVDC外送系统SIMULINK建模与仿真

本文基于MATLAB/Simulink平台构建了DFIG风电场经LCC-HVDC外送系统的仿真模型。系统采用1000MW聚合DFIG模型与双极12脉动LCC-HVDC连接,详细阐述了参数设计、控制策略及接口协调方法。重点解决了风电场无功能力不足、功率波动影响换相等关键技术问题,为大规模风电基地外送提供了仿真研究框架。模型整合了官方DFIG和HVDC详细模块,通过参数缩放和控制系统优化,实现了完整系统的动态仿真分析。

huanghm88的专栏 121

Oracle数据库将数字金额转换为大写汉字

Oracle: -------------------------------------------------------- -- 数字金额转大写 -------------------------------------------------------- create or replace FUNCTION MoneyToChinese(P_NUM IN NUMBER D...

IamFiora的博客 3202

Python爬虫实战:利用最新技术爬取微信公众号文章(基于搜狗搜索)

使用最新Python版本确保兼容性和性能:比传统Requests更强大的HTML解析库Playwright:新一代浏览器自动化工具,比Selenium更高效Asyncio:异步IO框架提升爬虫效率Redis:分布式任务队列和去重MongoDB:非关系型数据库存储结构化数据本文详细介绍了如何利用Python最新技术栈构建一个功能强大的微信公众号文章爬虫。通过结合Playwright浏览器自动化、异步IO、分布式任务队列等技术,我们实现了一个能够绕过反爬机制、高效稳定抓取数据的解决方案。

2201_76125261的博客 1796

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

ORACLE 金额转大写中文

CREATE OR REPLACE FUNCTION func_changeToChineseMoney(P_NUM IN NUMBER DEFAULT NULL) RETURN NVARCHAR2 IS RESULT NVARCHAR2(100); --返回字符串 NUM_ROUND NVARCHAR2(100) := TO_CHAR(ABS(ROUND(P_NUM, 2))); ...

weixin_40013130的博客 1319

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

将数字金额转换为中文大写金额(在网上找的)

/*------Oracle数据库------*/                                      在存储过程中,将数据中的金额小写转大写的函数。create or replace function F_upper_money(p_num in number default null)return nvarchar2 is/*Ver:1.0 Created By xsb

流落街头(蜗牛) 3113

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

oracle里存储函数将金额数字转换成大写

CREATE OR REPLACE FUNCTION NUMBER_TO_CHINESE(P_NUM IN NUMBER DEFAULT NULL) RETURN NVARCHAR2 IS /*Ver:1.0 Created By xsb on 2003-8-18 For: 将金额数字(单位元)转换为大写(采用从低至高算法) 数字整数部分不得超过16位,可以是负数。 个位数处理...

xyl的博客 750

Oracle PL SQL将金额数字转换成大写

[url]http://blog.sina.com.cn/s/blog_6a3922be0101a72t.html[/url] CREATE OR REPLACE FUNCTION SMALITOBLG( SMALLMONEY VARCHAR2 ) RETURN VARCHAR2 IS BIGWRITE VARCHAR2(54); -- 用于负担会答谢的钱数 BIGNUM VAR...

007liuchao007 1354

【SQL】Oracle实现小写金额转换成大写的方法

【SQL】Oracle实现小写金额转换成大写的方法 今天看到论坛上有朋友询问,于是百度了一下,发现了曾有高人写过一个很牛的函数,崇拜一下, 这里我也记录一下。 论坛帖子 http://www.itpub.net/thread-1504656-1-1.html 当时的回帖: ---------------------------------------------

吟啸徐行的专栏 1718

oracle sql 转换大写,Oracle SQL 金额小写转大写函数

原文链接:http://www.cnblogs.com/Ira_Young/archive/2009/11/11/1601168.html1.[代码][SQL]代码Create Or Replace Function Money2Chinese(Money In Number) Return Varchar2 IsstrYuan Varchar2(150);strYuanFen ...

weixin_39817122的博客 468

【转】oracle金额大写

今天写了一个将数字金额转化为大写的函数。 功能:将任意长度的数字金额转化为大写。最低位为圆或角时,后面加“整”;为“分”时不加“整”。 说明:小数点后保留两位。超过两位的部分被截断。 Create Or Replace Function Money2Chinese(Money In Number) Return Varchar2 Is strYuan Varchar2(150); strYuanFen Varchar2(152); numLenYuan Number;

qq_36951178的博客 743

将数字金额转换为中文大写金额

/*------Oracle数据库------*/                                      在存储过程中,将数据中的金额小写转大写的函数。create or replace function F_upper_money(p_num in number default null)return nvarchar2 is/*Ver:1.0 Created By xsb

lxu的专栏 3545

Oracle中将数字金额转化为大写

今天写了一个将数字金额转化为大写的函数。 功能:将任意长度的数字金额转化为大写。最低位为圆或角时,后面加“整”;为“分”时不加“整”。 说明:小数点后保留两位。超过两位的部分被截断。 代码:  PL/SQL 代码 测试SQL如下: Select Money2Chinese(0932402934024.213) From dual; 结果: 玖仟叁

cumtPHP的博客 3161
上一篇: 利用url传值中文乱码问题
勤奋小人
博客等级 码龄14年 2粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值