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员工的姓名的存储过程(无参存储过程)
// 1.创建查询的存储过程 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; // 2.调用该存储过程 begin test001; end;
练习2:根据员工编号查询员工姓名(带输入参数的存储过程)
// 1.创建查询的存储过程 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; // 2.调用该存储过程 begin test002(7788); end;
练习3:创建输出emp表中的员工名称的存储过程(带输出参数的存储过程)
// 1.创建存储过程 create or replace procedure test003(v_ename out emp.ename%type) is begin select ename into v_ename from emp where empno=7788; end; // 2.调用 declare v_ename emp.ename%type; begin test003(v_ename); dbms_output.put_line(v_ename); end;
练习4:根据输入的员工编号查询该员工(如:7839号员工)信息,将该员工的姓名、薪水作为返回值输出
// 1.创建存储过程
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;
// 2.调用
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;



