gpt4 book ai didi

Oracle过程与函数的区别分析

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Oracle过程与函数的区别分析由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

Oracle过程和函数相信大家都比较了解,下面就为您详细介绍Oracle过程和函数二者之间的区别,希望可以让您对Oracle过程和函数有更深的认识.

Oracle过程和函数都以编译后的形式存放在数据库中,函数可以没有参数也可以有多个参数并有一个返回值。过程有零个或多个参数,没有返回值。函数和过程都可以通过参数列表接收或返回零个或多个值,函数和过程的主要区别不在于返回值,而在于他们的调用方式。Oracle过程是作为一个独立执行语句调用的:

pay_involume(invoice_nbr,30,due_date),

函数以合法的表达式的方式调用:

order_volumn:=open_orders(SYSDATE,30),

创建过程的语法如下:

?
1
2
3
4
5
6
7
8
9
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子句 。

?
1
2
3
4
5
6
7
8
9
10
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语句.

在创建函数中可以调用单行函数和组函数,例如:

?
1
2
3
4
5
6
7
8
9
10
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过程与函数的区别分析的文章就讲到这里了,如果你想了解更多关于Oracle过程与函数的区别分析的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com