oracle pl/sql之oracle存储过程

      存储过程是一种命名pl/sql程序块,它可以被赋予参数,存储在数据库中,可以被用户调用。由于存储过程是已编译好的代码,所以在调用的时候不必再次进行编译,从而提高了程序的运行效率。另外使用存储过程可以实现程序的模块化设计

 

存储过程的语法:

create [or replace] procedure procedure_name (parameter [{in| out}]  data_type,

parameter [{in| out}]  data_type....)  

{is|as}

 begin

executable section;

exception

exception handlers;

end;

 

程序演示:

     写一个存储过程用来向emp表中插入一条数据

create of replace procedure my_procedure3 is
begin
insert into emp(empno,ename) values(9527,'星爷之唐伯虎');
end;

 

控制台中调用存储过程:

 exec 过程名(参数);

 

或者写一个plsql语句块

begin

过程名(参数);

end;

 

参数:

oracle 有三种参数模式in out和 in out
 
in 表示用户的输入参数
 
程序演示:
 

create or replace procedure my_procedure(in_no in number,in_name in varchar2) is
begin
insert into emp(empno,ename) values(in_no,in_name);
end;

 

out参数表示用户的输出

程序演示:

create or replace procedure my_pro(in_no in number,out_name out varchar2,out_sal out number) is
begin
select ename,sal into out_name,out_sal from emp where empno=in_no;
end;

 

在sqlplus中想得到带有输出的过程执行完后的值
 
方法1:写匿名块
 


declare
v_name emp.ename%type;
v_sal emp.sal%type;
begin
my_pro(7369,v_name,v_sal);
dbms_output.put_line( v_name);
dbms_output.put_line( v_sal);
end;

 注意:

in out同时具有in和out的特性,在过程中可以读取和写入类型参数

 

 

posted @ 2015-10-22 15:34  逍遥鸣  阅读(273)  评论(0编辑  收藏  举报