原文地址:
http://blog.sina.com.cn/s/blog_6a3922be0101a72t.html
CREATE OR REPLACE FUNCTION SMALITOBLG(
SMALLMONEY VARCHAR2
)
RETURN VARCHAR2 IS
BIGWRITE VARCHAR2(54); -- 用于负担会答谢的钱数
BIGNUM VARCHAR(2); -- 用于存放每一个阿拉伯数字对应的汉子
RMB VARCHAR(2); -- 用于存放人民币单位
MONEYPLACE NUMBER; -- 用于确定人民币的精度,最多只能精确到分
DOTPLACE NUMBER; -- 确定小数点的位置
MONEYNUM NUMBER; -- 人民币的位置
MYEXCEPTION EXCEPTION; -- 自定义异常
BEGIN
DOTPLACE := INSTR(SMALLMONEY,'.');
IF(LENGTH(SMALLMONEY) > 14) OR ((LENGTH(SMALLMONEY) > 12) AND (DOTPLACE = 0)) THEN
RAISE MYEXCEPTION;
END IF;
IF DOTPLACE = 0 THEN
MONEYPLACE := 0;
ELSE
MONEYPLACE := DOTPLACE - LENGTH(SMALLMONEY);
END IF;
FOR MONEYNUM IN REVERSE 1..LENGTH(SMALLMONEY) LOOP
IF MONEYNUM <> DOTPLACE THEN
CASE SUBSTR(SMALLMONEY,MONEYNUM,1)
WHEN '1' THEN BIGNUM := '壹';
WHEN '2' THEN BIGNUM := '贰';
WHEN '3' THEN BIGNUM := '叁';
WHEN '4' THEN BIGNUM := '肆';
WHEN '5' THEN BIGNUM := '伍';
WHEN '6' THEN BIGNUM := '陆';
WHEN '7' THEN BIGNUM := '柒';
WHEN '8' THEN BIGNUM := '捌';
WHEN '9' THEN BIGNUM := '玖';
WHEN '0' THEN BIGNUM := '零';
END CASE;
CASE MONEYPLACE
WHEN '-2' THEN RMB := '分';
WHEN '-1' THEN RMB := '角';
WHEN '0' THEN RMB := '元';
WHEN '1' THEN RMB := '拾';
WHEN '2' THEN RMB := '佰';
WHEN '3' THEN RMB := '仟';
WHEN '4' THEN RMB := '萬';
WHEN '5' THEN RMB := '拾';
WHEN '6' THEN RMB := '佰';
WHEN '7' THEN RMB := '仟';
WHEN '8' THEN RMB := '亿';
WHEN '9' THEN RMB := '拾';
WHEN '10' THEN RMB := '佰';
WHEN '11' THEN BIGNUM := '仟';
END CASE;
MONEYPLACE := MONEYPLACE + 1;
IF BIGWRITE IS NULL THEN
BIGWRITE := BIGNUM || RMB;
ELSE
BIGWRITE := BIGNUM || RMB || BIGWRITE;
END IF;
END IF;
END LOOP;
RETURN BIGWRITE;
EXCEPTION -- 异常处理部分
WHEN MYEXCEPTION THEN
DBMS_OUTPUT.PUT_LINE('该函数只能转换长度不大于14位或整数位不大于12位的钱数!');
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('不是有效的钱数!');
END SMALITOBLG;
分享到:
相关推荐
将数字金额转化为汉字大写金额,用于理财程序的金额转化。
oracle pl sql 实例精解 oracle pl sql 实例精解 oracle pl sql 实例精解
《oracle pl/sql程序设计(第5版)》基于oracle数据库11g,从pl/sql编程、pl/sql程序结构、pl/sql程序数据、pl/sql中的sql、pl/sql应用构建、高级pl/sql主题6个方面详细系统地讨论了pl/sql以及如何有效地使用它。...
《Oracle PL/SQL程序设计(第5版)》基于Oracle数据库11g,从PL/SQL编程、PL/SQL程序结构、PL/SQL程序数据、PL/SQL中的SQL、PL/SQL应用构建、高级PL/SQL主题这6个方面详细系统地讨论了PL/SQL以及如何有效地使用它。...
Oracle PL SQL 程序设计 下 第五版 中文版
《oracle pl/sql程序设计(第5版)(上下册)》基于oracle数据库11g,从pl/sql编程、pl/sql程序结构、pl/sql程序数据、pl/sql中的sql、pl/sql应用构建、高级pl/sql主题这6个方面详细系统地讨论了pl/sql以及如何有效地...
oracle数据库,使用自定义函数,实现了金额的大写转换。sql语句中,直接调用此函数即可得到金额大写。
At the heart of much of Oracle’s software is PL/SQL—a programming language that provides procedural extensions to Oracle’s version of SQL (Structured Query Language) and serves as the programming ...
《oracle pl/sql程序设计(第5版)(上下册)》基于oracle数据库11g,从pl/sql编程、pl/sql程序结构、pl/sql程序数据、pl/sql中的sql、pl/sql应用构建、高级pl/sql主题这6个方面详细系统地讨论了pl/sql以及如何有效地...
oracle中将小写金额转换为大写金额函数 oracle中将小写金额转换为大写金额函数
《Oracle PL/SQL程序设计(第5版)(套装上下册)》基于Oracle数据库11g,从PL/SQL编程、PL/SQL程序结构、PL/SQL程序数据、PL/SQL中的SQL、PL/SQL应用构建、高级PL/SQL主题这6个方面详细系统地讨论了PL/SQL以及如何...
Oracle PL SQL完全自学手册(宫生文),高清扫描。
本书是专门为Oracle应用开发人员提供的SQL和PL/SQL编程指南。通过学习本书,读者不仅可以掌握Oracle常用工具Oracle Universal Installer、Net Comfiguration Assistant、SQL Developer、SQL*Plus的作用及使用方法,...
Oracle PL SQL完全自学手册(宫生文)。
Oracle PL SQL Programming(5th) 英文无水印pdf 第5版 pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请...
Oracle PL SQL语言基础Oracle PL SQL语言基础Oracle PL SQL语言基础Oracle PL SQL语言基础Oracle PL SQL语言基础Oracle PL SQL语言基础
oracle PL SQL 程序设计(第5版)上册,用于想学习oracle知识方面的同学
Oracle PL SQL Programming(6th) 英文无水印pdf 第6版 pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请...
Oracle PL/SQL实例精解 student模式 数据库建立代码 包括数据库的建立、索引等。样本数据的插入。