微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MySqlException:对于带有游标的存储过程,子查询返回多于1行

如何解决MySqlException:对于带有游标的存储过程,子查询返回多于1行

你好,我有以下用于MysqL的存储过程,但是当它在我的ASP.NET Core应用程序中执行时,我得到一个查询返回多个行错误。我在这里做错了什么?等效的sql Server版本过去可以正常工作...

-- System Calculates Candidate’s Matching score based on a Manager’s Answer Weights
CREATE PROCEDURE spSysCalcCandscore
(
    IN Candidate_ID INT,IN Manager_ID INT
)
Begin
    DECLARE ansID INT;
    DECLARE tempSum INT;
    DECLARE Sum INT;
    DECLARE Done INT DEFAULT FALSE;
    DECLARE MyCursor CURSOR FOR
    SELECT Answer_ID FROM Completed_Questionnaire
    WHERE Candidate_ID = Candidate_ID;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET Done = TRUE;
    START TRANSACTION;
        OPEN MyCursor;
        myloop: LOOP
            FETCH  MyCursor INTO ansID;
            IF Done THEN
                LEAVE myloop;
            END IF;
            SET tempSum = (SELECT Weight_Value FROM Weight WHERE (Answer_ID = ansID AND Manager_ID = Manager_ID));
            SET Sum = Sum + tempSum;
        END LOOP;
        CLOSE MyCursor;
        
        IF (Sum IS NULL) THEN
            SET Sum = 0;
        END IF;
        
        UPDATE `Interest`
        SET Matching_score = Sum
        WHERE (Candidate_ID = Candidate_ID AND Manager_ID = Manager_ID);
    COMMIT;
End//

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。