PLSQL存储过程和函数

1.存储过程

存储过程是一段存储在数据库中执行某块业务功能的程序模块,它由一段或多段的PLSQL代码块或者SQL语句组成,存储在数据库中,并通过输入、输出参数或输入/输出参数与其调用者交换信息。

--创建存储过程
create or replace procedure 存储过程名称(参数 in|out|in out 参数类型)
is
begin
    plsql代码块;
end
​
--存储过程的调用
在plsql块中调用 
call命令调用:  call 名字(); 
​
--存储过程的删除
drop procedure 名称;

参数的三种模式:

IN 用于接受调用程序的值。默认的参数模式

OUT 用于向调用程序返回值

IN OUT 用于接受调用程序的值,并向调用程序返回更新的值

--创建一个存储过程,以员工号为参数,输出该员工的工资 
create or replace procedure p1(e1 in number)
is
esal emp.sal%type;
begin
  select sal into esal from emp where empno=e1;
  dbms_output.put_line(esal);
end;
​
--创建一个存储过程,以员工号为参数,返回该员工的工作年限(以参数形式返回)。
create or replace procedure p3(e1 in number,h1 out number)
is
begin
  select floor(months_between(sysdate,hiredate)/12) into h1 from emp where empno=e1;
  dbms_output.put_line(h1);
end;
​
--编写过程,实现交换两个变量的值的功能。并输出交换前和交换后的两个值。
create or replace procedure p11(x1 in out number,x2 in out number)
is
z number;
begin
  dbms_output.put_line(x1||','||x2);
  z:=x1;
  x1:=x2;
  x2:=z;
  dbms_output.put_line(x1||','||x2);
end;
2.函数

函数是通过关键字function按照需求把复杂的业务逻辑封装进PLSQL函数中,提供一个返回值给使用者。

--创建函数
create or replace function 函数名称(参数 数据类型)
return 返回值类型
is
begin
    plsql代码块;
    return 返回值;
end;
​
--创建一个函数,以员工号为参数,返回该员工所在的部门的平均工资。
create or replace  function f3(e1 number)
return number
is
d1 number;
x number;
begin
  select deptno into d1 from emp where empno=e1;
  select avg(sal) into x from emp where deptno=d1;
  return x;
end;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

特亿安

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值