我們可以用兩種方式創建存儲過程
方式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');