存储过程返回更新的记录数?
我对存储过程非常陌生。我正在尝试创建一个存储过程,它将执行接受 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你不需要光标。只需在您卡住的线路上使用
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.