存储过程是一种命名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;
参数:
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;
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;
注意: