【问题标题】:Stored Procedure return updated record count?存储过程返回更新的记录数?
【发布时间】:2010-08-18 06:06:31
【问题描述】:

我对存储过程很陌生。我正在尝试创建一个存储过程,该过程将执行接受 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
    ;

【问题讨论】:

    标签: stored-procedures db2 ibm-midrange


    【解决方案1】:

    您不需要光标。只需在您卡住的线路上使用GET DIAGNOSTICS NUMREC = ROW_COUNT

    更多信息here

    【讨论】:

    • 感谢您的回复,非常有帮助。你知道如何在程序结束时返回 out 参数吗?更新后还需要提交吗?
    • 过程返回后,OUT 参数的值将在您调用过程时为该参数提供的变量中可用。您在事务中发生的 UPDATE 之后提交。否则,不需要 COMMIT。
    • 谢谢杰夫,您的回复很有帮助 =)
    猜你喜欢
    • 2019-04-20
    • 1970-01-01
    • 1970-01-01
    • 2017-05-06
    • 1970-01-01
    • 2015-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多