1.概述
ORACLE 提供 可以把PL/SQL
程序存储在数据库中,并可以在任何地方来运行它。这样就叫存储过程或函数。存储过程和函数统称为PL/SQL子程序,他们是被命名的PL/SQL块,均存储在数据库中,并通过输入、输出参数或输入/输出参数与其调用者交换信息。
过程和函数的唯一区别是:
函数总向调用者返回数据,而过程则不返回数据。
2.存储过程
存储过程,就是一段存储在数据库中执行某块业务功能的程序模块。它是由一段或者多段的PL/SQL代码块或者SQL语句组成的一系列代码块。
创建存储过程的语法
create [or replace] procedure 存储过程名[(参数 in|out|in out 参数数据类型,…)]
is|as
声名部分;
begin
plsql代码块;
exception
异常处理;
end;
如:
--无参数存储过程
create or replace procedure p1
is
begin
for v in (select * from emp) loop
dbms_output.put_line(v.ename||','||v.job||','||v.sal||','||v.deptno);
end loop;
end;
select * from user_objects where object_type='PROCEDURE';
存储过程的调用
过程名字();
- 在plsql块中调用
- call 名字();
- execute命令调用(sqlplus中输出)
Sqlplus :
set serverout on;
Begin
过程名();
end;
删除存储过程
drop procedure p1;
参数的三种模式
IN 用于接受调用程序的值。默认的参数模式
OUT 用于向调用程序返回值
IN OUT 用于接受调用程序的值,并向调用程序返回更新的值
--写一个存储过程,根据传入部门编号,查询该部门下的所有员工,并打印员工信息
create or