日期:2014-05-16  浏览次数:20432 次

oracle 之存储过程学习笔记
过程:用于执行特定操作的pl/sql块.
过程中的参数有三种模式:in(输入)  out(输出)  in out(输入输出)
过程的建立: 
create or replace procedure proc_name(argumeng1 [mode1] datatype1,argument2 [mode2] datatype2,....)
is/as
   ---定义变量            
begin
   ---body   注意:select into的用法,不能直接用select语句。
end;

例子:
create or replace procedure proc_ename(eno emp.empno%type)
is
  ename emp.ename%type;
begin
  select ename into ename from emp where empno = eno;
  dbms_output.put_line(ename);
end;

存储过程有两种调用方式:
1、call proc_ename(7788);
   在pl/sql中sql/command window或者sql*plus都可以执行。
   注意调用无参的存储过程时,需要加上"()"。
2、exec proc_ename(7788);
   在pl/sql中sql window中不可执行,在command window或者sql*plus都可以执行。

删除过程:drop procedure proc_name;
查看过程源代码: select * from user_source;
我的异常网推荐解决方案:oracle存储过程,http://www.aiyiweb.com/oracle-develop/177537.html