儲存過程(stored procedure )是一組為了完成特定功能的sql語句
集,經編譯後儲存在資料庫中。使用者通過指定儲存過程的名字並給出引數
(如果該儲存過程帶有引數)來執行它。儲存過程是資料庫中的乙個重要
物件,任何乙個設計良好的資料庫應用程式都應該用到儲存過程。
儲存過程是由流控制和sql 語句書寫的過程,這個過程經編譯和優化後
儲存在資料庫伺服器中,應用程式使用時只要呼叫即可。在oracle 中,
若干個有聯絡的過程可以組合在一起構成程式包。
優點:
定義儲存過程語法:
create [or replace] procedure pro_name[(
parameter1 datatype1,
parameter2 datatype2,
parameter3 datatype3,
...)][descriptionpart說明部分]
begin
sql statement語句序列
[exception 異常處理]
end [pro_name];
註解: 1.or replace : 是乙個可選的關鍵字,建議使用者
使用此關鍵字。如果過程已經存在,該關鍵字將重新
建立過程,這樣就不必刪除和重新建立過程。
2.{is | as}: 關鍵字is 和as均可,它們本身沒什麼區別,
is 後面是乙個完整的 pl/sql塊, 可以定義區域性變數,
但不能從 declare 開始。 區域性變數在儲存過程內部存放
值。3.: 形式引數,如果沒有寫,則預設為in
in 表示輸入引數; out 表示輸出引數; inout ...;
建立乙個儲存過程例子:
1.建立第乙個儲存過程, 列印 helloworld;
create or replace procedure pro_test
asbegin
dbms_output.put_line('helloworld');
end;
注意在pl/sql 的命令視窗中 需新增 「/」 回車,表示輸入完成,可以直接執行
2.使用
在命令視窗直接
在sql視窗使用
建立的儲存過程檢視:
Oracle儲存過程呼叫儲存過程
oracle儲存過程呼叫有返回結果集的儲存過程一般用光標的方式,宣告乙個游標,把結果集放到游標裡面,然後迴圈游標 declare newcs sys refcursor cs1 number cs2 number cstype table rowtype table列的個數和newcs返回的個數一樣...
ORACLE儲存過程
自定義函式開始 create or replace function fn wftemplateidget templatecategoryid number,organid number,templatemode number return number istemplateid number i...
Oracle 儲存過程
create or replace procedure p 有就替換,沒有就建立 iscursor c is select from emp for update begin for v emp in c loop if v emp.deptno 10 then update emp2 set sa...