1.什么是存储过程
PLSQL是将一个个PLSQL的业务处理过程存储起来进行复用,这些被存储起来的PLSQL程序称之为存储过程。
2.存储过程的语法
create or replace procedure 存储过程名称 [(参数列表)] is
begin
执行语句
end [过程名称];
begin
存储名称;
end;
drop procedure 存储过程名称;
3.存储过程的分类
create or replace procedure 存储过程名称 is
begin
执行语句
end;
create or replace procedure 存储过程名称(输入参数 in 参数类型) is
begin
执行语句
end;
create or replace 存储过程名称(输出参数 out 参数类型) is
begin
执行语句
end;
create or replace 存储过程名称(输入参数 in 参数类型,输出参数 out 参数类型) is
begin
执行语句
end;
4.存储过程的相关练习
练习1:创建查询emp表中empno为7788员工的姓名的存储过程(无参存储过程)
create or replace procedure test001 is
v_ename emp.ename%type;
begin
select ename into v_ename from emp where empno=7788;
dbms_output.put_line(v_ename);
end;
begin
test001;
end;
练习2:根据员工编号查询员工姓名(带输入参数的存储过程)
create or replace procedure test002(v_empno in emp.empno%type) is
v_ename emp.ename%type;
begin
select ename into v_ename from emp where empno=v_empno;
dbms_output.put_line(v_ename);
end;
begin
test002(7788);
end;
练习3:创建输出emp表中的员工名称的存储过程(带输出参数的存储过程)
create or replace procedure test003(v_ename out emp.ename%type) is
begin
select ename into v_ename from emp where empno=7788;
end;
declare
v_ename emp.ename%type;
begin
test003(v_ename);
dbms_output.put_line(v_ename);
end;
练习4:根据输入的员工编号查询该员工(如:7839号员工)信息,将该员工的姓名、薪水作为返回值输出
create or replace procedure test004(v_empno in emp.empno%type,v_ename out emp.ename%type,v_sal out emp.sal%type) is
begin
select ename,sal into v_ename,v_sal from emp where empno=v_empno;
end;
declare
v_ename emp.ename%type;
v_sal emp.sal%type;
begin
test004('&员工编号',v_ename,v_sal);
dbms_output.put_line(v_ename);
dbms_output.put_line(v_sal);
end;
|