ORACLE PROCEDURE和FUNCTION的区别

 还不知道写啥,先搜索一下:

当然了,不可能只是写这一部分,开个玩笑

关于对procedurefunction的理解

最基本就是语法的不同

procedure:

create or replace procedure 一个名字可以自己设(in 参数名1 参数类型,in out 参数名2 参数类型)
begin
    select 字段 into 参数名2 from 表名 where 条件=参数名1;
end;
--procedure调用
call procedure的名字(参数1,参数2);
select 参数2;

function:

create or replace function 函数名(参数1 int)
returns 返回类型
begin
    set n=n-1;
    return(select distinct salary from employee desc limit n,1);
end;
--function调用
select 函数名(参数1);

由此可见,procedure是没有返回值(return),function是有返回值(return)且返回值类型要一致。都包括(in、out、in out)三种模式的参数。

在调用方法上也有不同,procedure可以作为一个独立的PL/SQL语句来执行,function不能独立,执行在PL/SQL中必须指定变量接收返回,必须作为表达式的一部分调用。在SQL语句中可以直接调用function,procedure不可以直接调用。在DML中同样适用。

在不同的情况下,需要运用的的也不尽相同,视情况决定,那种适用。当然了,还是一句话:适合自己的才是最好的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值