PLSQL学习中的存储过程和存储函数一

一、存储过程和存储函数说明
1、存储在数据库中供所有用户程序调用的子程序叫存储过程、存储函数。
2、其实存储函数与存储过程一样,也能返回多个值。那么,什么时候使用存储过程/存储函数?
这里,我们还是遵循原则:如果只有一个返回值,使用存储函数;否则,就使用存储过程。

二、存储过程:给指定员工涨工资
1、创建存储过程:
存储过程PLSQL程序
create or replace procedure raiseSalary(empid in number)
as
psal emp.sal%type;
begin
select sal into psal from emp where empno=empid;
update emp set sal=sal*2 where empno=empid;

dbms_output.put_line(‘员工编号:’ || empid || ‘涨工资前:’ || psal || ‘涨工资后:’
|| psal*2);
end;
/
分析:
(1)empid in number in表示传入进来的参数, empid number就是正常的变量声明了
(2)select sal into psal from emp where empno=empid; empno=empid 代表指定的某个员工的意思,
给这个指定的员工加工资 sal into psal是将sal的值存入变量psal中
如图:
这里写图片描述
2、调用存储过程:
在SQL Plus窗口中输入调用存储过程代码,其实在Oracle SQL Developer中也能给员工涨工资,这里没有写出来,请看下面三.存储函数的例子。
给员工7934涨工资
这里写图片描述
三、存储函数:查询某员工总收入
查询某员工7876总收入
1、创建存储函数:
create or replace function queryEmpSalary(empid in number)
return number
as
psal number;
pcomm number;
begin
select sal,comm into psal,pcomm from emp where empno=empid;
return psal*12 + nvl(pcomm,0);
end;
/
分析:
(1)return number 返回函数值类型
(2)return psal*12 + nvl(pcomm,0); 返回值 刚好与上面的1.中的return number 对应
如图:
这里写图片描述
2、调用存储函数:
2种途径来查询某员工7876总收入
途径1:在SQL Plus窗口
这里写图片描述
途径2:在Oracle SQL Developer中
这里写图片描述
这里写图片描述
四、查询某员工工资:分别使用存储过程和存储函数
1、使用存储过程:
存储过程PLSQL程序和运行结果如下图:
这里写图片描述
这里写图片描述
2、使用存储函数:
存储函数PLSQL程序和运行结果如下图:
这里写图片描述
五、存储函数返回多个值
其实存储函数与存储过程一样,也能返回多个值。
存储函数PLSQL程序和运行结果如下图:
这里写图片描述
这里写图片描述

猜你喜欢

转载自blog.csdn.net/zz13995900221/article/details/80273877