Oracle过程和函数相信大家都比较了解,下面就为您详细介绍Oracle过程和函数二者之间的区别,希望可以让您对Oracle过程和函数有更深的认识。
Oracle过程和函数都以编译后的形式存放在数据库中,函数可以没有参数也可以有多个参数并有一个返回值。过程有零个或多个参数,没有返回值。函数和过程都可以通过参数列表接收或返回零个或多个值,函数和过程的主要区别不在于返回值,而在于他们的调用方式。Oracle过程是作为一个独立执行语句调用的:
- pay_involume(invoice_nbr,30,due_date);
函数以合法的表达式的方式调用:
- order_volumn:=open_orders(SYSDATE,30);
创建过程的语法如下:
- CREATE [ OR REPLACE] PROCEDURE [schema.]procedure_name
- [parameter_lister]
- {AS|IS}
- declaration_section
- BEGIN
- executable_section
- [EXCEPTION
- exception_section]
- END [procedure_name]
每个参数的语法如下:
- paramter_name mode datatype [(:=|DEFAULT) value]
mode有三种形式:IN、OUT、INOUT。
IN表示在调用过程的时候,实际参数的取值被传递给该过程,形式参数被认为是只读的,当过程结束时,控制会返回控制环境,实际参数的值不会改变。
OUT在调用过程时实际参数的取值都将被忽略,在过程内部形式参数只能是被赋值,而不能从中读取数据,在过程结束后形式参数的内容将被赋予实际参数。
INOUT这种模式是IN和OUT的组合;在Oracle过程内部实际参数的值会传递给形式参数,形势参数的值可读也可写,过程结束后,形势参数的值将赋予实际参数。
创建函数的语法和过程的语法基本相同,唯一的区别在于函数有RETUREN子句
- CREATE [ OR REPLACE] FINCTION [schema.]function_name
- [parameter_list]
- RETURN returning_datatype
- {AS|IS}
- declaration_section
- BEGIN
- executable_section
- [EXCEPTION]
- exception_section
- END [procedure_name]
在执行部分函数必须有哟个或多个return语句。
在创建函数中可以调用单行函数和组函数,例如:
- CREATE OR REPLACE FUNCTION my_sin(DegreesIn IN NUMBER)
- RETURN NUMBER
- IS
- pi NUMBER=ACOS(-1);
- RadiansPerDegree NUMBER;
- BEGIN
- RadiansPerDegree=pi/180;
- RETURN(SIN(DegreesIn*RadiansPerDegree));
- END
【编辑推荐】
Oracle to_char函数的使用
oracle函数返回表的实现
带您了解Oracle FBI索引
详解Windows下卸载Oracle数据库
详解Oracle多种表连接方式
网站栏目:Oracle过程和函数的区别
转载来于:http://www.shufengxianlan.com/qtweb/news28/369978.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联