`
234390216
  • 浏览: 10233718 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
博客专栏
A5ee55b9-a463-3d09-9c78-0c0cf33198cd
Oracle基础
浏览量:462671
Ad26f909-6440-35a9-b4e9-9aea825bd38e
springMVC介绍
浏览量:1775580
Ce363057-ae4d-3ee1-bb46-e7b51a722a4b
Mybatis简介
浏览量:1398404
Bdeb91ad-cf8a-3fe9-942a-3710073b4000
Spring整合JMS
浏览量:395035
5cbbde67-7cd5-313c-95c2-4185389601e7
Ehcache简介
浏览量:680008
Cc1c0708-ccc2-3d20-ba47-d40e04440682
Cas简介
浏览量:530915
51592fc3-854c-34f4-9eff-cb82d993ab3a
Spring Securi...
浏览量:1184077
23e1c30e-ef8c-3702-aa3c-e83277ffca91
Spring基础知识
浏览量:468008
4af1c81c-eb9d-365f-b759-07685a32156e
Spring Aop介绍
浏览量:151411
2f926891-9e7a-3ce2-a074-3acb2aaf2584
JAXB简介
浏览量:68174
社区版块
存档分类
最新评论

Oracle——10用户自定义函数

阅读更多

 


用户自定义函数是存储在数据库中的代码块,可以把值返回到调用程序。函数的参数有3种类型:

(1)in参数类型:表示输入给函数的参数,该参数只能用于传值,不能被赋值。

(2)out参数类型:表示参数在函数中被赋值,可以传给函数调用程序,该参数只能用于赋值,不能用于传值。

(3)in out参数类型:表示参数既可以传值,也可以被赋值。

 

1.函数的创建

语法格式:

 

		create [or replace] function functionName
		(
			parameterName1 mode1 dataType1,
			parameterName2 mode2 dataType2,
			...
		)
		return returnDataType
		is/as
		begin
			function_body
			return expression
		end functionName; -- 结束函数的声明,也可以直接写end不加函数名。
	--其中mode1、mode2表示参数类型,dataType表示参数的数据类型。returnDataType表示返回值类型。

 

示例1:

 

		create or replace function explainParameter -- 定义一个名为explainParameter的函数
		(
			inParam in char,	--	定义该参数类型为in参数类型,只能用于赋值
			outParam out char,	--	out参数类型,只能用于传值
			inAndOutParam in out char	--	in out参数类型,既能赋值,又能传值
		)
		return char		--	表示函数的返回类型为char类型
		as		-- 表示函数体部分
			returnChar char;		--	声明零时变量,这是可有可无的,这里声明返回变量为char类型的returnChar变量。
		begin
			inParam := 'Hello World';	-- 这是错误的,in类型的参数只能用来传值,不能赋值
			outParam := 'Hello World'; -- 这是正确的,out类型的参数可以用来被赋值
			inAndOutParam := 'Hello World'; -- 这是正确的,in out参数既可以用来传值,又可以被赋值
			inAndOutParam := outParam; -- 这是错误的,out参数不能用来传值
			return(returnChar);	-- 返回returnChar,也可以不要括号,直接写return returnChar。
		end explainParameter; -- 结束explainParameter函数,表示explainParameter函数声明结束,也可以直接写end,不加函数名。

 

 

示例2:

 

		CREATE OR REPLACE 
		FUNCTION testFunc (num1 IN NUMBER, num2 IN NUMBER)
		RETURN NUMBER
		AS
			num3 number;
			num4 number;
			num5 number;
		BEGIN
			num3 := num1 + num2;
			num4 := num1 * num2;
			num5 := num3 * num4;
			RETURN num5;
		END;

 

 

 

2.函数的调用

自定义函数的调用方法跟系统内置函数的调用方法相同,可以直接在select语句中调用,也可以在函数中调用,如下:

select testFunc(1,2) from tableName;

num := testFunc(1,2);

 

 

3.函数的删除

自定义函数的删除方法类似于表的删除,语法格式如下:

drop function [schema.]functionName;

2
1
分享到:
评论
1 楼 yanglover 2012-06-14  
                    

相关推荐

    ORCAL自定义函数

    ORCAL数据库(假设为Oracle的一个误拼)支持用户创建自定义函数,这些函数可以被用于SQL查询中,极大地提高了数据库应用的灵活性和效率。 #### 二、自定义函数的基本语法 自定义函数的基本结构包括以下几个部分: ...

    Oracle自定义聚集函数使用

    在Oracle数据库中,自定义聚集函数为用户提供了高度的灵活性,允许他们根据特定需求创建自己的数据聚合逻辑。本文将深入探讨Oracle自定义聚集函数的实现与应用,包括其四个主要组成部分:`ODCIAggregateInitialize`...

    ORACLE报表分析利剑——分析函数

    ### ORACLE报表分析利剑——分析函数:深度解析与应用 #### 一、理解分析函数:数据统计的新维度 分析函数作为Oracle数据库中一项高级功能,专为解决复杂报表统计需求设计,其核心优势在于能够对数据进行精细的...

    oracle汉字转拼音函数整理大全

    本篇文档详细介绍了两种用于转换汉字到拼音的自定义函数:`fn_getpyKGJG` 和 `fn_getpyWKG`。这些函数能够满足不同场景下对拼音格式的需求,比如是否包含空格分隔、大小写等。 #### 二、函数定义及使用方法 - **`fn...

    自己写的Oracle四舍六入奇进偶不进的函数

    ### Oracle自定义函数实现四舍六入五单进的数值修约 在处理数值运算时,数据精度的处理是一项至关重要的工作。特别是在金融、统计等领域,对于数据精度的要求非常高,这就需要我们对数值进行精确的修约处理。本文将...

    oracle获取汉字拼音和拼音首字母的功能函数

    总的来说,Oracle中获取汉字拼音和拼音首字母涉及了字符编码、Java编程、自定义函数、第三方工具等多个方面。开发者可以根据具体的需求和环境,选择合适的方法来实现这一功能。在处理过程中,要注意字符集的兼容性、...

    Oracle汉字拼音首字母函数

    通过上述介绍,我们可以看到自定义函数`F_TRANS_PINYIN_CAPITAL`能够有效地将输入的中文字符串转换为其拼音首字母串,这对于涉及中文数据处理的应用非常有用。不过,在实际应用中还需要根据具体需求和场景来调整和...

    oracle oci

    而"Oracle游标视图和自定义函数.pdf"可能深入讲解了如何在Oracle中创建和使用游标视图以及自定义函数,包括它们的语法、示例以及最佳实践。 了解和熟练掌握Oracle OCI是开发高性能、低延迟的Oracle数据库应用的关键...

    oracle新手入门指导之四——ORACLE数据类型 .txt

    ### Oracle新手入门指导之四——ORACLE数据类型 在Oracle数据库中,数据类型的选择对于确保数据的正确存储、处理效率以及资源的有效利用至关重要。本文将详细介绍Oracle中的各种数据类型及其特性,帮助初学者更好地...

    oracle小写人名币转大写人名币函数

    根据提供的文件信息,可以看出这是一个Oracle数据库中的自定义函数,用于将数字表示的小写人民币金额转换为汉字大写形式。此函数对于财务系统、银行系统等需要处理人民币金额大写显示的应用场景非常有用。 ### 函数...

    Python Excel 处理函数 以及 OracleHelper 工具类(csdn)————程序.pdf

    本文件中的代码展示了如何使用Python的`xlrd`库读取Excel文件,并将其转换为JSON格式,同时还演示了如何使用自定义的`OracleHelper`工具类与Oracle数据库进行交互,实现数据的写入。 首先,`read_excel`函数用于...

    PL/SQL手册———oracle10g

    ### PL/SQL手册——Oracle 10g #### 概述 PL/SQL(Procedural Language for SQL)是Oracle数据库的一种内置编程语言,用于增强SQL的功能并支持更复杂的业务逻辑处理。它结合了SQL的数据操作能力和过程化的编程结构...

    Oracle应用项目——应用包实例.pdf

    Oracle数据库中的应用包是组织和管理PL/SQL代码的有效方式,它允许开发者将相关的存储过程、函数、游标、自定义类型以及变量等封装在一起,形成一个逻辑单元。包的概念有助于提升代码的重用性和模块化,从而提高开发...

    Oracle 11g 从入门到精通——第六章(视频教程)

    在Oracle 11g中,可以创建自定义函数,根据需求返回单个或多个值,这些函数可以集成到查询中,增强查询的功能性和灵活性。 通过学习和掌握以上四个核心概念,开发者和DBA可以更高效地管理Oracle 11g数据库,实现...

    韩顺平玩转oracle视频的文档

    这部分介绍了Oracle中的各种内置函数,包括字符函数、数学函数、日期函数、转换函数和系统函数。 - **字符函数**:如`UPPER`、`LOWER`等用于字符串操作。 - **数学函数**:如`ROUND`、`TRUNC`等数学运算。 - **日期...

    Oracle Database 19c (NT-193000-client-home.zip)

    10. **sqlplus**:SQL*Plus是Oracle提供的命令行工具,用户可以通过它执行SQL语句、PL/SQL块,进行数据库查询、管理及报告编写。 综上所述,Oracle Database 19c客户端提供了全面的工具和组件,以支持数据库的连接...

    Loadrunner用户使用手册——Vug部分

    你可以添加自定义函数、修改动作或调整逻辑,以适应各种测试需求。调试工具可以帮助找出脚本中的错误,确保其在回放时能准确无误地执行。 5. **协议分析器** 在VUG中,协议分析器是一个实用工具,用于查看和理解...

    韩顺平oracle视频笔记

    - **概念**:在Oracle数据库中,用户是用来管理访问权限的基本单位。每个用户都可以有自己的模式(schema),其中包含各种对象如表、视图等。 - **创建用户**:通过`CREATE USER username IDENTIFIED BY password;`来...

    oracle_code.rar_oracle

    2. **函数(Functions)**:可以创建自定义函数,将序列生成的数字转换为符合条形码格式的字符串。例如,可能需要在数字前添加特定前缀,或者在某些位置插入检查位以确保条形码的正确性。 3. **字符集与编码**:...

Global site tag (gtag.js) - Google Analytics