存储过程(Stored Procedure) 是在大型数据库系统中,一组为了完成特定功能的 SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。

创建存储过程语法

语法1

create [or replace] PROCEDURE 过程名[(参数名 in/out 数据类型)] 
AS 
begin
 PLSQL 子程序体;
End;

语法2

create [or replace] PROCEDURE 过程名[(参数名 in/out 数据类型)] 
is
begin
 PLSQL 子程序体;
End 过程名;

范例:创建一个输出 helloword 的存储过程

create or replace procedure helloworld is
begin
 dbms_output.put_line('helloworld');
end helloworld;

调用存储过程,在 plsql 中调用存储过程

begin
 -- Call the procedure 
 helloworld;
end;

范例 2:给指定的员工涨 100 工资,并打印出涨前和涨后的工资
分析:我们需要使用带有参数的存储过程

create or replace procedure addSal1(eno in number) is
 pemp myemp%rowtype;
begin
 select * into pemp from myemp where empno = eno;
 update myemp set sal = sal + 100 where empno = eno;
 dbms_output.put_line('涨工资前' || pemp.sal || '涨工资后' || 
(pemp.sal + 100));
end addSal1;

调用

begin
 -- Call the procedure
 addsal1(eno => 7902); 
 commit;
end;