原文地址:
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数据库中,进行金额数字到大写汉字的转换是一个常见的需求,特别是在处理财务数据时。Oracle提供了一些内置函数和自定义方法来实现这个功能。本文将深入探讨如何在Oracle中进行这种转换,并以PSQL...
Oracle数据库是世界上最流行的数据库管理系统之一,SQL(Structured Query Language)是用于管理关系数据库的标准语言,而PL/SQL是Oracle数据库特有的编程语言,扩展了SQL的功能,使得能够编写复杂的存储过程和...
内置函数包括数学函数、字符串函数、日期时间函数等,例如:MOD()用于求余数,UPPER()将字符串转换为大写。用户定义函数可以根据需求创建,返回单个值或记录,可接受参数,并执行自定义逻辑。 四、过程和函数 1. ...
在Oracle数据库中,处理金融数据时,我们经常需要对金额进行格式化,使其符合特定的显示标准,例如将数字转换为大写的汉字或者添加货币符号等。"Oracle 金额转换"是一个关键的操作,用于提高数据的可读性和合规性。...
PL/SQL使用的字符集包括所有大写和小写字母、0-9的阿拉伯数字以及各种操作符。这些字符构成了PL/SQL程序的基础。 #### 四、PL/SQL标识符 - **最大长度**:30个字符 - **不区分大小写**:尽管PL/SQL不区分大小写,...
代码功能:将输入的数值,转换为汉字的大写金额. 输入的数值可以是整数,也可以带小数位,还可以带千分位符. 代码作用:通过此段代码,综合地演示了ORACLE内置函数的用法.可以将此段代码改写为存储函数,供程序调用 代码...
### Oracle PL/SQL最佳实践概览 #### 一、引言 自从1994年史蒂文·菲厄斯坦(Steven Feuerstein)开始撰写关于Oracle PL/SQL语言的文章以来,该领域的信息来源已经从最初的寥寥无几发展到今天的形式多样。现在,有...
在 ORACLE 中,使用 `TO_DATE` 函数来将字符串转换为日期,而在 SQL Server 中,使用 `CONVERT` 函数。例如: SQL Server: `SELECT * FROM tablename WHERE lrsj >= '2002-11-11'` ORACLE: `SELECT * FROM ...
Oracle SQL和PL/SQL是数据库管理和编程的重要工具,主要用于处理Oracle数据库中的数据。这篇课堂笔记主要涵盖了基础的SQL查询语法和部分PL/SQL概念。 首先,SQL查询的基础是从数据库中选择数据。`SELECT`语句用于...
### Oracle PL/SQL 编程经典入门知识点解析 #### 一、简单程序 在 Oracle PL/SQL 中,简单程序通常指的是基本的 SQL 查询语句,用于检索数据库中的数据。例如,根据特定条件筛选记录。 ##### 示例 - **查询薪资...
### Oracle_PL(SQL)单行函数和组函数及使用 #### 一、概述 在Oracle数据库中,SQL 和 PL/SQL 提供了大量的内置函数,这些函数可以极大地提高开发效率和简化查询逻辑。根据处理数据的不同方式,这些函数可以分为...
Oracle PL/SQL是一种强大的编程语言,它将关系数据库的强大功能与高级编程语法相结合,使得数据库管理、数据处理和业务逻辑的实现更为高效。在Oracle PL/SQL中,单行函数和组函数是两个核心概念,它们在数据操作和...
接下来的部分将详细介绍PL/SQL的基本编码规范,包括命名规则、过程及匿名块命名规范、数据库代码接口管理等方面。这些规范同样非常重要,能够确保代码的一致性和可维护性。 ##### 3.1 命名规范 - **规范要求**:在...
- **大写字母**:用于表示SQL*Plus、SQL或PL/SQL关键字。 - **小写字母**:用于表示用户定义的项,如表名等。 - **斜体**:用于表示文件名、强调的新术语以及参数名称。 - **固定宽度字体**:用于代码示例展示。 - *...
"SQLServer数据库导入Oracle详解" 在数据库管理中,数据迁移是一个非常重要的步骤,特别是在不同数据库管理...但是,通过使用PL/SQL Developer和了解数据库管理系统之间的差异,我们可以成功地将数据迁移到Oracle中。
PL/SQL书写规范 1、 语句中出现的所有表名、字段名全部小写,系统保留字、内置函数名、Sql保留字大写。 2、 连接符or、in、and、以及=、、>=等前后加上一个空格。 3、 对较为复杂的sql语句加上注释,说明算法、...
Oracle SQL语法是数据库管理员和开发人员在操作Oracle数据库时必须掌握的重要技能。下面将详细解释文档中提及的一些关键知识点。 一、排序显示 在Oracle SQL中,`ORDER BY`子句用于对查询结果进行排序。默认是升序...