存储过程返回更新的记录数?

发布于 2024-09-15 13:08:05 字数 645 浏览 6 评论 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
    ;

I am very new to stored procedures. I am trying to make a stored procedure which would perform an update accepting 2 input parameters and return the number of records updated (in my case always 1).

I have managed till this so far but I don't understand how to return the variable after opening the cursor. Is the cursor necessary at all in my case ? Please correct me if my approach is wrong.

    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
    ;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

会发光的星星闪亮亮i 2024-09-22 13:08:05

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

更多信息 此处

You don't need a cursor. Just use GET DIAGNOSTICS NUMREC = ROW_COUNT on the line you're stuck on.

More info here.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文