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中
如图:
sqldeveloper安装步骤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总收⼊
2种途径来查询某员⼯7876总收⼊
途径1:在SQL Plus窗⼝
途径2:在Oracle SQL Developer中
四、查询某员⼯⼯资:分别使⽤存储过程和存储函数
1、使⽤存储过程:
存储过程PLSQL程序和运⾏结果如下图:
2、使⽤存储函数:
存储函数PLSQL程序和运⾏结果如下图:
五、存储函数返回多个值
其实存储函数与存储过程⼀样,也能返回多个值。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论