1. 程式人生 > >Oracle儲存過程,遊標使用

Oracle儲存過程,遊標使用

Oracle儲存過程:

語法:
CREATE [OR REPLACE] PROCEDURE procedure_name
(arg1 [mode1] datatype1,arg2 [mode2] datatype2,...)
IS [AS]
PL/SQL BLOCK;
mode用於指定輸入輸出引數:IN為輸入引數,OUT為輸出引數,當為輸入引數時可以省去IN,OUT不能省去。
如果沒有輸入輸出引數,可以省去
(arg1 [mode1] datatype1,arg2 [mode2] datatype2,...)這一行

一個帶有輸入,輸出引數的簡單的例子

呼叫該過程

 

顯示遊標語法:

CURSOR cursor_name IS select_statement

一個簡單的例子:

 引數化遊標只是宣告方式和開啟遊標時有些不同

CURSOR emp_test2(p_deptno emp.deptno%TYPE) IS --宣告遊標
       SELECT ename, job FROM emp WHERE deptno = p_deptno;

 OPEN emp_test2(10); --開啟遊標

遊標變數:

定義遊標變更型別
TYPE type_name IS REF CURSOR[RETURN return_type];

約束與無約束的遊標變數
無約束的遊標變數包含特定的返回型別(type,rowtype,record等),查詢的選擇列表必須匹配遊標的返回型別,否則會出現預

定義的ROWTYPE_MISMATCH異常。約束的遊標變數沒有Return子句。