oracle儲存過程 帶引數的儲存過程

2022-04-10 07:39:44 字數 1396 閱讀 4667

帶引數的儲存過程

舉例:為指定的員工漲100元的工資,列印漲前和漲後的工資

如果帶參,需要指定是輸入引數還是輸出引數

create

orreplace

procedure raisesalary(eno in number)as

---定義乙個變數儲存漲前的薪水,引用emp中sal的型別作為psal的型別

psal emp.sal

%type;

begin

---得到員工漲前的薪水

select sal into psal from emp where empno=

eno; --

-給該員工漲100

update emp set sal=sal+

100where empno=

eno;

---需不需要commit?

---注意:一般不在儲存過程或者儲存函式中 commit和rollback

---列印漲前和漲後的工資

dbms_output.put_line(

'漲前:

'||psal||

'漲後:

'||(psal+

100));

end;

/一般在呼叫儲存過程或者函式的時候再commit,這樣可以保證所有執行是在同乙個事物中進行的

如:begin

raisesalary(

7839

); raisesalary(

7566

);

commit

;end

;/

一般不在儲存過程中commit或者rollback,而是在呼叫儲存過程之後再提交或回滾,這樣能把儲存過程封裝到乙個事務中。

如果是命令視窗就用exec 儲存過程名,舉個栗子:

1.如果是命令視窗就用exec 儲存過程名,舉個栗子:

execprocedure;--procedure是儲存過程名

2.如果是pl/sql視窗就用 begin  儲存過程名  end; 舉個栗子:

begin

procedure;--procedure是儲存過程名

end;

3.如果是程式中呼叫就用 call 儲存過程名 ,舉個栗子:

hibernatedao.excutesqlupdate("");//儲存過程proc_stuinfo

Oracle帶引數的儲存過程

一 需求 為指定的員工,漲100塊錢的工資 並且列印漲前和漲後的薪水。二 帶引數儲存過程 給指定的員工漲 100,並且列印漲前和漲後的薪水 如何呼叫 begin raisesalay 7839 raisesalay 7566 commit end create orreplace procedure...

Oracle 帶引數的儲存過程

1 建立儲存過程 create procedure updatedemo ageparam in number asbegin update demo set age ageparam commit end 2 傳參執行 begin updatedemo 20 end 3 為儲存過程設定引數的預設值...

儲存過程帶in引數

set ansi nulls on set quoted identifier on goalter procedure dbo testlist userid nvarchar 4000 asdeclare search array nvarchar 100 begin set search ar...