PL/SQL程序之存储过程和存储函数

存储过程和存储函数
指存储在数据库中供所有用户程序调用的子程序叫存储过程、存储函数。
创建存储过程:
用CREATE PROCEDURE命令建立存储过程和存储函数。
语法:
create [or replace] PROCEDURE 过程名(参数列表) 
AS 
PLSQL子程序体;
注:存储过程一般用于高度安全的系统中

例一:为所有员工涨10%的工资
创建存储过程
create or replace procedure updateSal
as
--plsql程序块
--存储过程不能有declare
create or replace procedure updateSal
as
cursor c1 is select sal,empno from emp;
emp_sal emp.sal%type;
emp_no emp.empno%type;
begin
open c1;
loop
  fetch c1 into emp_sal,emp_no;
  exit when c1%notfound;
  update emp set sal=emp_sal*1.1 where empno=emp_no;
  end loop;
  close c1;
  end;
调用存储过程
方式一:
SQL> begin
  2  updateSal;
  3  end;
  4  /
方式二:
SQL> exec updateSal;
调用完成后手工提交一下
【
Commit语句:结束当前事务, 使当前事务所执行的全部修改永久化。
】

存储函数
函数(Function)为一命名的存储程序,可带参数,并返回一计算值。函数和过程的结构类似,但必须有一个RETURN子句,用于返回函数值。函数说明要指定函数名、结果值的类型,以及参数类型等。
建立存储函数的语法:
CREATE [OR REPLACE] FUNCTION 函数名(参数列表) 
 			RETURN  函数值类型
AS
PLSQL子程序体;

例二:获取指定员工的年收入
create or replace function sumSal(emp_no number)--function(参数的值  必须有类型)
--返回值类型
return number--必须有返回值
as
--声明变量
emp_sal emp.sal%type;
emp_comm emp.comm%type;
total emp.sal%type;
begin
  select sal,comm into emp_sal,emp_comm from emp where empno=emp_no;
  total:=emp_sal*12+nvl(emp_comm,0);
  return total;--必须返回  返回值类型一定相同
end;
调用方法
方法一:
SQL> begin
  2  dbms_output.put_line(sumSal(7369));
  3  end;
  4  /
方法二:
declare
v_sal number;
begin
v_sal:=sumSal(7369);
dbms_output.put_line(v_sal);
end;
结果
12777.6


  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值