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

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  
                    

相关推荐

    Oracle 10g 开发与管理

    5.统计函数——列名应指定别名 35 6. Group By分组 36 7.Having子句 36 8.练习:表的查询 36 五. 在SQL *Plus中使用函数 37 1.字符串函数 37 2.数字函数 37 3.日期时间函数 38 4.转换函数 38 第五讲 修改SQL数据与...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    Oracle建议我们自定义自己的角色,使我们更加灵活方便去管理用户  创建角色 SQL> create role admin;  授权给角色 SQL> grant connect,resource to admin;  撤销角色的权限 SQL> revoke connect from admin; ...

    PL/SQL Developer v8.0.zip

    比较用户对象——对表格定义、视图、程序单元等作出修改后,将这些修改传递给其他数据库用户或检查修改前后的区别将是非常有用的。这也许是一个其他的开发环境,如测试环境或制作环境等。而比较用户对象功能则允许您...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例079 自定义函数截取中文字符串 113 实例080 公告标题的截取 114 实例081 论坛内容的简短输出 116 实例082 自定义函数过滤字符串 117 2.8 字符串 118 实例083 过滤论坛帖子中的空白和特殊字符 118 实例084 对论坛...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例079 自定义函数截取中文字符串 113 实例080 公告标题的截取 114 实例081 论坛内容的简短输出 116 实例082 自定义函数过滤字符串 117 2.8 字符串 118 实例083 过滤论坛帖子中的空白和特殊字符 118 实例084 对论坛...

    UniversalFrame-8.9.9.9.zip

    ———————————————— 版权声明:本文为CSDN博主「逆-血」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:...

    php网络开发完全手册

    4.1.2 用户自定义函数的编写 58 4.2 PHP常用函数 59 4.2.1 获得日期时间信息的函数getdate 60 4.2.2 获得当前时间的函数 4.2.2 gettimeofday 61 4.2.3 日期验证函数checkdate 61 4.2.4 格式化本地时间日期的函数date...

    Java典型模块

    3.1.2 可变参数函数 3.1.3 增强版for循环 3.1.4 基本数据的拆、装箱操作(autoboxing和unboxing) 3.2 枚举 3.2.1 枚举的实现原理 3.2.2 枚举的简单应用 3.2.3 枚举的高级特性 3.3 反射 3.3.1 反射的基石——Class类...

    SQL智能完成工具BDB

    :取所有数据表触发器 DESC [Views]:取所有视图 DESC [Functions]:取所有用户自定义函数 DESC [Procedures]:取所有存储过程 <br>6、导出查询结果至Excel文件 选择点击工具栏“文件”-“导出至...

    PLSQLDeveloper下载

    比较用户对象——对表格定义、视图、程序单元等作出修改后,将这些修改传递给其他数据库用户或检查修改前后的区别将是非常有用的。这也许是一个其他的开发环境,如测试环境或制作环境等。而比较用户对象功能则允许...

    asp.net知识库

    Oracle中PL/SQL单行函数和组函数详解 mssql+oracle Oracle编程的编码规范及命名规则 Oracle数据库字典介绍 0RACLE的字段类型 事务 CMT DEMO(容器管理事务演示) 事务隔离性的一些基础知识 在组件之间实现事务和异步...

    亮剑.NET深入体验与实战精要2

    5.5.1 Oracle和SQL Server的常用函数对比 240 5.5.2 Oracle和SQL Server的语句区别 244 5.5.3 ASP.NET连接Oracle失败的解决方法 245 本章常见技术面试题 246 常见面试技巧之经典问题巧回答 246 本章小结 247 第6章 ...

    亮剑.NET深入体验与实战精要3

    5.5.1 Oracle和SQL Server的常用函数对比 240 5.5.2 Oracle和SQL Server的语句区别 244 5.5.3 ASP.NET连接Oracle失败的解决方法 245 本章常见技术面试题 246 常见面试技巧之经典问题巧回答 246 本章小结 247 第6章 ...

    精通Qt4编程(第二版)源代码

    \——QDialog 卢传富介绍了Qt的对话框类QDialog,实现了一个自定义的登录对话框,举例说明了Qt提供的内建对话框类的应用。 14 \ 第3章 基础窗口部件——QWidget 卢传富 \蔡志明首次引入Qt设计器的使用,绘制并实现...

    精通qt4编程(源代码)

    \——QDialog 卢传富介绍了Qt的对话框类QDialog,实现了一个自定义的登录对话框,举例说明了Qt提供的内建对话框类的应用。 14 \ 第3章 基础窗口部件——QWidget 卢传富 \蔡志明首次引入Qt设计器的使用,绘制并实现了...

    javaSE代码实例

    第10章 构造器——对象制造的工厂 176 10.1 基础知识 176 10.1.1 编写构造器的语法规则 176 10.1.2 访问限制修饰符与构造器 176 10.1.3 构造器与返回类型 179 10.2 创建对象 180 10.3 重载构造器 181 ...

    轻松学C#(图解版)

    11.3 自定义异常类 212 11.4 checked和unchecked关键字 214 11.4.1 checked 214 11.4.2 unchecked 214 11.5 小结 217 11.6 习题 217 第12章 文件和流 221 12.1 System.IO类 221 12.2 文件类File 222 12.2.1 文件的...

Global site tag (gtag.js) - Google Analytics