码迷,mamicode.com
首页 > 数据库 > 详细

oracle pl/sql之oracle存储过程

时间:2015-10-22 16:56:16      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:

      存储过程是一种命名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的特性,在过程中可以读取和写入类型参数

 

 

oracle pl/sql之oracle存储过程

标签:

原文地址:http://www.cnblogs.com/ztyy04126/p/4901203.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!