儲存過程的呼叫

2021-06-27 11:20:50 字數 1333 閱讀 2752

oracle儲存過程 以oracle自帶例子資料庫的表舉例

1、create or replace procedure p

is cursor c is

select * from emp2 for update;

begin

for v_emp in c loop

if(v_emp.sal <2000) then

update emp2 set sal =sal+1 where current of c ;

elsif(v_emp.sal>=2000) then

delete from emp2 where current of c;

end if;

end loop;

commit;

end;

建立了儲存過程不代表執行了儲存過程;

執行此儲存過程 :

方式一 exec p;

方式二begin

p;end;

2、帶引數的儲存過程

in 相當於程式裡的引數,供傳入用,在儲存過程不能改變其值;

out 相當於程式裡的返回值,在儲存過程中可以為其賦值傳出;

in out 既可以當引數又可以當返回值用;

不帶上述說明符預設為in型別;

下例中v_a v_b 為in型別

v_c 為out型別

v_d 為in out 型別

create or replace procedure p(v_a in number,v_b number,v_c out number,v_d in out number)

isbegin

if(v_a > v_b) then

v_c := v_a;

else

v_c := v_b;

end if;

v_d := v_d+1;

end;

---> 除錯時:

可以在命令視窗除錯,出錯時 用show errors 顯示出錯資訊;

可以在pldv中除錯;

---> 執行時:

可以在命令視窗執行:

declare

v_a number:=3;

v_b number:=4;

v_c number;

v_d number:=5;

begin

p(v_a,v_b,v_c,v_d);

dbms_output.put_line(v_c);

dbms_output.put_line(v_d);

end;

可以在pldv中除錯;

Oracle儲存過程呼叫儲存過程

oracle儲存過程呼叫有返回結果集的儲存過程一般用光標的方式,宣告乙個游標,把結果集放到游標裡面,然後迴圈游標 declare newcs sys refcursor cs1 number cs2 number cstype table rowtype table列的個數和newcs返回的個數一樣...

呼叫儲存過程

用乙個命令物件呼叫儲存過程,就是定義儲存過程的名稱,給過程的每個引數新增引數定義,然後執行命令。1.呼叫沒有返回值的儲存過程 呼叫儲存過程的最簡單示例是不給呼叫者返回任何值。下面定義了兩個這樣的儲存過程,乙個用於更新現有的region記錄,另乙個用於刪除指定的region記錄。1 記錄的更新 cre...

儲存過程呼叫

size medium color blue 於 size small 儲存過程 包含三部分 宣告,執行部分,異常。可以有無引數程式和帶引數儲存過程。無參程式語法 1 create or replace procedure noparpro 2 as 3 begin 4 5 exception 6 ...