PLSQL程式設計 儲存過程

2021-09-17 01:32:28 字數 2028 閱讀 2889

1.在開發程式中,為了乙個特定的業務功能,會向資料庫進行多次連線關閉連線(連線和關閉資料庫是很耗費資源的),需要對資料庫進行多次i/o讀寫,效能比較低。如果把這些業務放到plsql中,在應用程式中只需要呼叫plsql就可以做到連線關閉一次資料庫就可以實現我們的業務,可以大大提高效率。

2.oracle官方給出的解釋:能夠讓資料庫操作的不要放在程式中,在資料庫實現基本不會出錯,在程式操作中可能會出錯,(如果在資料庫中操作,可以有一點的日誌恢復等功能)

3.語法

create or replace procedure 過程名稱 [(引數列表)] is

begin

end 過程名稱;

3.1 無參儲存

create or replace procedure p_a is

begin

dbms_output.put_line('hello world');

end p_a;

呼叫儲存過程:

begin

-- call the procedure

p_a;

end;

執行結果:

3.2 帶輸入引數的儲存過程

--查詢並列印員工號7839的姓名和薪水

--儲存過程,要求:呼叫的時候傳入員工編號,自動控制列印

create or replace procedure p_query(i_empno in emp.empno%type) as

--宣告變數

v_ename emp.ename%type;

v_sal emp.sal%type;

begin

select ename,sal into v_ename,v_sal from emp where empno = i_empno;

--列印變數

dbms_output.put_line('姓名:' || v_ename || '薪水:' || v_sal);

end p_query;

呼叫:

begin

-- call the procedure

p_query(7839);

end;

結果:

3.3 帶輸入輸出的儲存過程

--查詢並列印員工號7839的姓名和薪水

--儲存過程,要求:呼叫的時候傳入員工編號,自動控制列印

create or replace procedure p_shuchu(i_empno in emp.empno%type,o_sal out emp.sal%type) as

--宣告變數

v_ename emp.ename%type;

v_sal emp.sal%type;

begin

select sal into o_sal from emp where empno = i_empno;

--列印變數

end ;

呼叫:

declare

--宣告變數

v_sal emp.sal%type;

begin

-- call the procedure

p_shuchu(7839,v_sal);

dbms_output.put_line('薪水:'||v_sal);

end;

執行結果:

PL SQL儲存過程

or replace 建立或替換,如果存在就替換,不存在就建立create or replace procedure piscursor cisselect from dept2 for update beginfor row record in c loopif row record.deptno...

pl sql 儲存過程

在這段時間的開發中資料庫用的是oracle以前用的都是mssql它們的儲存過程的寫法還有一點不一樣,所以花了一天的時間看了看!以下是我做的乙個小例子!create table mytesttable id number,name varchar2 10 insert into mytesttable...

PL SQL 儲存過程

1 游標的設計開發 什麼是游標,為什麼用游標,怎樣使用游標 2 儲存過程 儲存過程的建立,引數使用,儲存過程的執行 3 儲存函式的設計 函式的建立,引數使用,函式的呼叫 4 包的設計與應用 什麼是包,包的建立及使用 儲存過程 建立語法 create or replace procedure proc...