我们可以用两种方式创建存储过程
方式1
一:我们先创建一个存储过程,这里我们用的是 oracle中 用户scott里的emp(员工表)
create or replace procedure p_emp (p_ename in varchar2,outsalcomm out number) --in 输入;out 输出
as --也可以写成 is
x number;
y number;
begin
select sal,nvl(comm,0) INTO x,y from scott.emp where ename=p_ename;--comm是奖金列,用nvl()函数对null值填充数字0
outsalcomm :=x+y;
end;
/
set serverout on; --别忘了 开启输出!
execute p_emp('SMITH');--如果不出结果,按以下方法执行
二:我们采用定义变量的方式
declare
inname varchar2(25);--须给范围
outsalcomm number;
begin
inname := 'SMITH';
p_emp (inname,outsalcomm);
dbms_output.put_line(outsalcomm);--别忘了输出
end;
/
方式2
create or replace procedure p_emp (p_ename in varchar2)
as
x number;
y number;
begin
select sal,nvl(comm,0) INTO x,y from scott.emp where ename=p_ename;
DBMS_OUTPUT.PUT_LINE(x + y);
end;
/
set serverout on;
execute p_emp('SMITH');