博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle--函数(创建、调用和删除)
阅读量:2445 次
发布时间:2019-05-10

本文共 1352 字,大约阅读时间需要 4 分钟。

函数

函数一般用于计算和返回一个值,可以将经常需要进行的计算写成函数。函数的调用是表达式的一部分,而过程的调用是一条PL/SQL语句。

函数与过程在创建形式上有些相似,也是编译后放在内存中供用户使用,只不过调用时函数要用表达式,而不像过程只需调用过程名。另外,函数必须有一个返回值,而过程则没有。

创建函数

创建函数的语法和创建存储过程的语法也很相似。它们在数据库内采用相同的规则,参数的传递也相同。

创建函数的基本语法如下:

CREATE [OR REPLACE] FUNCTION function_name[parameter1 [IN|OUT|IN OUT]data_type1,parameter2 [IN|OUT|IN OUT]data-type2,......]RETURN data_type;IS|AS	声明部分BEGIN	执行部分EXCEPTION	异常处理部分END [function_name];

在语法结构上,定义存储过程和函数的区别主要有两处:

  • 一是函数有RETURN数据类型子句,用于指定函数返回值的数据类型;
  • 二是在函数体内,用户可以在任何地方使用RETURN语句返回值,其返回值的数据类型必须是函数头中声明的,并且执行RETURN语句后函数将返回,不再执行下面的语句。

示例:创建函数用于求两个数的平均值

create or replace function f_avg(num1 in number,num2 in number)return number asresult_avg number;begin  result_avg :=(num1 + num2)/2;  return result_avg;end f_avg;/

创建函数之后就可以在需要时调用,调用函数与调用过程不同。调用函数时需要一个变量来保存函数的返回的结果值,这样函数就组成了表达式的一部分。这也就意味着,函数不能像调用过程那样独立地调用。

使用匿名程序块中调用函数f_avg()获取两个数的平均值:

在这里插入图片描述

创建函数用于计算选修某门课程的学生人数

create or replace function f_count(c_name in varchar2) return numberas resultCount number;begin  select count(distinct s.Sno) into resultCount  from student s,course c,sc sc  where s.Sno=sc.Sno and c.Cno=sc.Cno and c.Cname=c_name;  return(resultCount);end f_count;/

在这里插入图片描述

在这里插入图片描述

调用函数

函数声明时所定义的参数成为形式参数,应用程序调用时为函数传递的参数称为实际参数。实际参数和形式参数之间的数据传递有两种方法:传址法和传值法

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

删除函数

对于不再使用的函数,可以使用DROP FUNCTION语句进行删除,语法如下:

DROP FUNCTION 
;

在这里插入图片描述

转载地址:http://tkpqb.baihongyu.com/

你可能感兴趣的文章
gulp jq项目脚手架_使用Gulp和Slush轻松进行项目脚手架
查看>>
angularjs 国际化_AngularJS应用程序的国际化
查看>>
wordpress 插件_如何构建WordPress插件(第1部分)
查看>>
firebase vue_使用Vue和Firebase,Pt 3构建Google Keep Clone
查看>>
nl-mean程序下载_将MEAN应用程序部署到Amazon EC2(第1部分)
查看>>
使用Node.js构建实时Markdown编辑器
查看>>
wordpress 插件_如何构建WordPress插件(第2部分)
查看>>
laravel调试项目_在Laravel中调试查询
查看>>
火狐打开页面按钮类插件_在Firefox中的“最后打开”选项卡上返回“关闭”按钮...
查看>>
ChromePlus – Chromium浏览器的增强版
查看>>
在Firefox中以电影院风格观看YouTube视频
查看>>
在桌面上访问您的Google阅读器新闻提要
查看>>
使用默认程序编辑器修改基本系统设置
查看>>
趋势科技用的自动化测试工具_使用趋势科技的免费工具帮助保护您的PC
查看>>
使用Jarte获取功能强大的简化文本编辑器
查看>>
火狐浏览器最小字体_轻松将Firefox最小化到系统托盘
查看>>
火狐浏览器书签工具栏图标_在Firefox中添加垂直书签工具栏
查看>>
火狐浏览器怎么录制屏幕_轻松获取Firefox中的屏幕截图
查看>>
如何从Vista升级到Windows 7 Home Premium Edition
查看>>
ccc.exe_什么是CCC.exe,为什么运行?
查看>>