1.存储过程的定义:存储过程是在数据库服务器上对一段或多段sql语句组成的pl/sql代码进行封装的程序块。
好处:1.简化复杂操作;2.提高效率,存储过程执行操作只需编译一次,可以多次被调用。而不使用存储过程,单独使用sql操作的话,每次都需要编译。
1.定义一个简单的存储过程:
SQL> show serveroutput;
SQL> /
SQL> set serveroutput on;
SQL> create or replace procedure p_ljf
2 as
3 begin
4 dbms_output.put_line('我的第一个存储过程');
5 end;
6 /
Procedure created
SQL> call p_ljf;
call p_ljf
ORA-06576: 不是有效的函数或过程名
SQL> exec p_ljf;
我的第一个存储过程
PL/SQL procedure successfully completed
SQL>
2.无返回值的存储过程:
create or replace procedure p_book(v_id in number,v_name in varchar2)
is
begin
insert into book values(v_id,v_name);
end;
call p_book(2,'ljfbook');
select * from book;
1 2 ljfbook
3.有返回值的存储过程:
create procedure p_liu(v_id in number,v_show out varchar2) is
begin
select emp_code into v_show from cvms_user where emp_id=v_id;
end;
set serveroutput on;
SQL> declare
2 name cvms_user.emp_code%type;// name varchar2(255);也可以的;
3 begin
4 p_liu(3,name);
5 dbms_output.put_line(name);
6 end;
7 /
SF10002
PL/SQL procedure successfully completed