2010-04-08 25 views
1

我有一個表t1,其中有fileds叫做userid,week和year字段。我想調用一個將所有三個值作爲參數並激發更新查詢的過程。我該怎麼做?如何在oracle的過程中調用更新查詢

我的更新查詢應該是這樣

update t1 
    set week = (value of procedure argument) 
     , year = (value of procedure argument) 
where userid=(value of procedure argument); 

回答

1

你可以做這樣的事情:

CREATE OR REPLACE PROCEDURE my_update_proc (w number, y number, u number) IS 
BEGIN 
    UPDATE t1 
    SET week = w, 
      year = y 
    WHERE userid = u; 
    COMMIT; 
END my_update_proc; 
/

更新: 作爲@Rene正確地指出的那樣,你可能不希望在您的存儲過程中有一個COMMIT聲明。但是,如果您將其刪除,則調用者必須記得提交事務。

+0

哇,那很簡單;-) – 2010-04-08 06:49:20

+1

在derBeschränkungzeigt sich erst der Meister ... ;-) – 2010-04-08 07:51:46

+0

我不會在這樣的函數中提交一個提交。最好讓函數的調用者決定是否提交更改 – Rene 2010-04-08 12:10:48