MySQL 存储过程中变量使用Select...Into...获取值遭遇null,求助!

发布于 2022-09-02 12:44:36 字数 1130 浏览 10 评论 0

帮忙看看哪里有问题,多谢了。
确定数据库里有记录。
程序代码,参数的赋值和顺序并没有错。

  var productCategoryID = helper.emptyUuid;
  var parentID = req.body.parentID ? req.body.parentID : helper.emptyUuid;
  var usePorc = "CALL usp_productCategory_create(?,?,?,?,?,@returnCode);";
  var useParams = [productCategoryID, req.body.name, req.body.details, parentID, req.session.adminid];

存储过程,出错了。

CREATE DEFINER=`root`@`localhost` PROCEDURE `usp_productCategory_create`(
    in param_porductcategoryid char(50)
    ,in param_name varchar(20)
    ,in param_details varchar(200)
    ,in param_parentID char(50)
    ,in param_userID char(50)
    ,out returnCode char(12))
BEGIN    
    DECLARE var_exists int;
    SET returnCode='003001000';        
    SELECT count(productCategoryID) into var_exists FROM productcategories WHERE productCategoryID=param_parentID group by productCategoryID;      
    IF var_exists=1 then    
        SET returnCode='003001001';    
    end if;
    set returnCode=CAST(var_exists AS char(12));//后来加的语句用来做测试,结果获取到Null
    select returnCode;
END

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

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

发布评论

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

评论(2

黑色毁心梦 2022-09-09 12:44:37

哎呀……早上第一眼……我变量名定义错了……


已解决。
之前用 sublimeText 编辑保存的代码,ctrl+alt+F格式化代码,value被自动添加了若干空格。parentID 本来是uuid,加了空格后长度变82。汗。
再者,之前是在mssql下实现,直接过。现在改mysql,parentID传到存储过程里回打回来是'00000000-0000-0000-0000-000000000000\r\n'

<select name="parentID" class="form-control">
<% categories[0].forEach(function(category){ %>
  <% if (category.productCategoryID==parentID) { %>
    <option value="<%= category.productCategoryID %>
                                            " selected>
  <% } else { %>
    <option value="<%= category.productCategoryID %>
                                                ">
  <% }%>
</select>
心房敞 2022-09-09 12:44:37

做后判断啊,if xxx =null then

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