Oracle儲存過程,遊標使用
阿新 • • 發佈:2019-01-05
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子句。