2010-08-18 7 views
0

나는 매우 저장 프로 시저에 익숙하다. 2 개의 입력 매개 변수를 받아들이고 업데이트 된 레코드 수를 반환하는 저장 프로 시저를 만들려고합니다. (필자의 경우 항상 1).저장 프로 시저가 업데이트 된 레코드 수를 반환합니까?

지금까지 관리했지만 커서를 연 후에 변수를 반환하는 방법을 이해하지 못했습니다. 필자의 경우 커서가 필요합니까? 제 접근법이 잘못되면 저를 바로 잡으십시오.

CREATE PROCEDURE PAKRETST.FTUMODINST (IN GENFORTREATYSRNO INTEGER,IN GENFTMDPDUENO INTEGER, OUT NUMREC SMALLINT) 
RESULT SETS 0 MODIFIES SQL DATA LANGUAGE SQL 
P1:BEGIN 
    DELCARE strCmd VARCHAR(500); 
    DECLARE x CURSOR WITH RETURN TO CALLER FOR SL; 
    SET strCmd='UPDATE PAKRETST.UWFTMDPDUEDATES a where a.GENFORTREATYSRNO='||GENFORTREATYSRNO||'AND a.GENFTMDPDUENO='||GENFTMDPDUENO; 
    PREPARE SL FROM strCmd; 
    SET NUMREC= -- Stuck here -- 
    RETURN; 
    END 
    ; 

답변

3

커서가 필요하지 않습니다. 막 붙어있는 줄에 GET DIAGNOSTICS NUMREC = ROW_COUNT을 사용하면됩니다.

자세한 정보 here.

+0

답장을 보내 주셔서 감사합니다. 매우 도움이되었습니다. 프로 시저가 끝날 때 out 매개 변수를 반환하는 방법을 알고 있습니까? 또한 업데이트 후에 커밋이 필요합니까? –

+0

프로 시저가 반환 된 후 OUT 매개 변수의 값은 프로 시저를 호출 할 때 해당 매개 변수에 제공 한 변수에서 사용할 수 있습니다. 트랜잭션 내에서 발생하는 UPDATE 후에 COMMIT합니다. 그렇지 않으면, COMMIT는 필요하지 않습니다. –

+0

Jeff에게 답장을 보내 주셔서 감사합니다. =) –

관련 문제