2010-04-08 4 views
1

필자는 userid, week 및 year 필드로 불리는 fileds를 가진 하나의 테이블 t1을 가지고 있습니다. 세 가지 값을 모두 인수로 사용하고 업데이트 쿼리를 실행하는 프로 시저를 호출하려고합니다. 내가 어떻게 해?oracle 프로 시저에서 update query를 호출하는 방법

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

와우, 그게 쉬웠다 ;-) –

+1

내 생각에 .......--) –

+0

나는이 같은 함수 안에 커밋을 넣지 않을 것이다. 함수의 호출자가 변경을 커밋할지 여부를 결정하는 것이 더 좋습니다. – Rene

관련 문제