2010-04-08 39 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