1. 程式人生 > >Oracle儲存過程的簡單使用

Oracle儲存過程的簡單使用

我在這就不囉嗦儲存過程理論內容了,直接上乾貨,通過三個簡單的例子理解儲存過程,如果對PL/SQL程式設計比較瞭解的話,儲存過程就很容易了。

使用儲存過程顯示所有dept的資訊

create or replace procedure proc_1
is
cursor cur_dept is select * from dept;
begin
for rec_dept in cur_dept
loop
dbms_output.put_line(rec_dept.dname);
end loop; 
end;
/

//執行方法1
exec proc_1;
//執行方法2
begin
proc_1;
end
; /

無參儲存過程也是最簡單的

使用儲存過程按照部門號(deptno)查詢部門名(dname)

方法1


create or replace procedure proc_2(v_deptno dept.deptno%type)
is
v_dname dept.dname%type;
begin
select dname into v_dname from dept where deptno = v_deptno;
dbms_output.put_line(v_dname);
end;
/

//執行方法1
exec proc_2(10);
//執行方法2
begin
proc_2(10
); end; /

相比於第一個例子只是添加了一個引數

方法2

create or replace procedure proc_3(v_deptno dept.deptno%type,
v_dname out dept.dname%type)
is
begin
select dname into v_dname from dept where deptno = v_deptno;
end;
/

//執行方法
declare
v_dname dept.dname%type;
begin
proc_3(10,v_dname);
dbms_output.put_line(v_dname);
end
; /

這裡最需要注意的地方是引數後out,引數型別有in,out,預設為in。為了方便理解可以將in看作值傳遞,out看作地址傳遞