存储过程(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.原则:如果只有一个返回值,用存储函数,否则就用存储过程