oracle存储函数(10级学员 马林课堂总结)

转载 2012年03月22日 21:07:55

函数

2012/3/22

函数与存储过程非常相似,它也是一种存储在数据库中的命名程序块,也可以接受输入值,进行逻辑处理后将结果返回调用者。函数与存储过程之间的主要区别在于,函数必须有返回值,并且可以作为一个表达式的一部分,但不能作为一个完整的语句使用。

创建函数

创建函数的语法与创建存储过程的语法非常相似,它们遵循相同的规则,参数传递也相同。只是在创建函数事可以为其指定大量的属性。创建函数的基本语法如下:

         create [or replace] function function_name

         [(parameter [{ in | out | in out}] date_type,

parameter [{ in | out | in out}] date_type,……)]

return return_type;

{is|as}

Declaration section

Begin

Executable statements

Exception

Exception handlers;

End [function_name]

从这个语法结构可以看出,定义存储过程和函数之间的主要区别之一是,函数必须包含RETURN数据类型子句,用于指定函数返回的数据类型。在函数体内,用户可以再任何地方使用RETURN<expression>语句返回值,其返回值的数据类型必须是函数头中声明的。

例如,下面创建的函数用于求某个数的阶乘:

createorreplacefunction TestFunction (n innumber)

returnnumber

as

Resultnumber:=1;

begin

for i in1..n

loop

Result:=Result*i;

endloop;

return(Result);

end TestFunction;

 

创建的函数TestFunction可以求出任意正整数n!。需要注意,该函数的头部声明看了return值的类型,然后在函数体中使用return语句来返回一个该类型的值。

 

调用函数

       调用函数与调用过程不同,调用函数时,需要一个变量来保存返回值的结果值,这样函数就组成了表达式的一部分。因此,不能像调用过程那样调用过程那样独立的调用函数。

         例如调用上面创建好的TestFunction函数:

declare

var_num number:=5;

var_function number:=0;

begin

var_function:=TestFunction(var_num);

dbms_output.put_line(var_function);

end;

输出结果为;

试图通过EXEC语句来调用函数TestFunction,正如下面错误提示信息所显示

TestFunction不是过程

提示:

在函数中也可以使用OUT参数,但是在函数中同时使用RETURNOUT参数很容易产生混淆,所以在创建函数时,应该使用RETURN语句返回一个单独的值,而将OUT参数用于过程中。

Oracle存储过程与存储函数-慕课网学习笔记

存储过程和存储函数 存储在数据库中供所有用户程序调用的子程序叫做存储过程,存储函数.区别:是否可以通过return返回函数值.存储函数可以通过return返回函数值,而存储过程不可以.由于通过out...
  • javaee_sunny
  • javaee_sunny
  • 2016年10月19日 17:40
  • 1234

数据结构期末总结(对反转课堂的个人体会)

学习数据结构这门课想来已经有一个学期的时间了,同时也是在贺老师的引领下,接触并置身于反转课堂中有一段时间了。在这段日子里,对反转课堂的感觉正如对数据结构这门课的感觉相仿:从不了解到开始认知,在摸索中逐...
  • nightshiro
  • nightshiro
  • 2015年12月18日 22:22
  • 742

【oracle学习】10.存储过程和存储函数

前言 学习存储过程的前提是,了解PLSQL的语法和编写方式。 需要了解PLSQL,请查看之前的总结。 我们以下的表操作可能会基于以下两张表: 我们创建一个员工表和部门表: 员工信息表 create...
  • u013517797
  • u013517797
  • 2016年09月12日 14:10
  • 2027

QST青软实训学员学习总结

这次社会实践,首先带队老师带我们参观了国家级软件园、城市规划馆。让我更深入地了解到IT行业的飞速发展,以及庞大的市场前景和大公司对人才的迫切需求,这让我感觉自己选的专业没让我失望。同时,我也看到了如皋...
  • qq_34859668
  • qq_34859668
  • 2016年10月01日 16:26
  • 936

[Oracle] 逻辑结构实验与总结

一、逻辑体系结构图    二、逻辑结构图组成介绍   从上表可以看出,一个数据库是由多个表空间(tablespace)组成,一个表空间又由多个段(segment)组成,一个段又由多...
  • yongjian1092
  • yongjian1092
  • 2015年12月12日 19:14
  • 1002

Oracle存储过程总结(二、字符串处理相关函数)

项目中有涉及存储过程对字符串的处理,所以就将在网上查找到的资料汇总,做一个信息拼接式的总结。 以下信息均来自互联网,贴出来一则自己保存以待以后使用,一则供大家分享。 字符函数——返回字符值...
  • jumtre
  • jumtre
  • 2014年09月22日 15:17
  • 1341

Oracle中的函数和存储过程--真实项目示例

最近,在项目中写了数据库的函数和存储过程,趁此机会,整理了一下。 用户自定义函数是存储在数据库中的代码块,可以把值返回到调用程序。函数的参数有3种类型: (1)in参数类型:表示输入给函数的参数,该...
  • I_Am_Zou
  • I_Am_Zou
  • 2016年07月27日 11:16
  • 1207

oracle 存储过程或函数的调试过程

第一步: 选择调试模式 找到数据库里functions包下需要调试的函数或存储过程,然后选中这个函数(或存储过程),单击右键,出现如下图所示,选中测试功能,进入调试模式。 第二步: ...
  • shi_hong_fei_hei
  • shi_hong_fei_hei
  • 2014年03月30日 15:21
  • 2564

我们的翻转课堂-学期总结

关于这学期的翻转课堂,真的是感受良多。         其实呢,我在很早以前报过网校这样类似的东西,但是花了几千块钱,我却是一点也没看。暑假的时候,贺老向我们提出翻转课堂这个概念,让我不禁想起了这块...
  • qq_30951371
  • qq_30951371
  • 2015年12月18日 11:43
  • 607

oracle编写 函数和存储过程

转载自:  http://blog.csdn.net/lailai186/article/details/19115123 6.1 引言 6.2 创建函数 6.3 存储过程 6.3.1 创建过程 ...
  • Denghejing
  • Denghejing
  • 2016年09月28日 16:47
  • 1821
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:oracle存储函数(10级学员 马林课堂总结)
举报原因:
原因补充:

(最多只允许输入30个字)