存储过程和存储函数

存储过程(Stored Procedure)是一组为了完成特定功能的SQL 语句集,经编译后存储在数据库。中用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它

 优点:

1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而
一般SQL 语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速
度。
2.当对数据库进行复杂操作时(如对多个表进行
Update,Insert,Query,Delete 时),可将此复杂操作用存储过程封装起来
与数据库提供的事务处理结合一起使用。
3.存储过程可以重复使用,可减少数据库开发人员的工作量
4.安全性高,可设定只有某此用户才具有对指定存储过程的使用权

1.使用create  procedure 命令建立和使用存储过程

语法:create  [or replace] procedure   过程名(参数列表)

AS

PLSQL子程序

其中as表示是要申明的变量

例子:1.create or replace procedure  queryempinform (eno in number,

                                                                                         pename  out  varchar2,

                                                                                          psal  out  number,

                                                                                          pjob  out varchar2)

          as

          begin

          select  ename , sal, empjob  into pename,psal,pjob from emp where empno=eno;

          end

2.create or replace  procedure  raisesalary  (eno  in number)

as

-------定义一个变量保持涨前的薪水

------%type就是emp .sal的数据类型,

psal  emp .sal%type;

begin

select sal into psal from emp where  empno=eno;

update emp  set  sal=sal+100 where empno=eno;

dbms_output_put_line(.......)

end

2.存储函数

函数为一命名的存储程序,可以带参数,并返回一个计算值,函数和过程的结构类似,但

但必须有一个return子句,用于返回函数值

create [or replace]  FUNCTION 函数名(参数列表)

return 函数值类型

AS

PLSQL子程序体

3.两者区别

一般来说,存储过程和存储函数的区别在于存储函数有一个返回值,而存储过程没有返回值

4.原则:如果只有一个返回值,用存储函数,否则就用存储过程

原文地址:https://www.cnblogs.com/libaowen609/p/12819689.html