为什么我从此存储过程中收到Null? [英] Why do I receive Null from this stored procedure?

查看:76
本文介绍了为什么我从此存储过程中收到Null?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我用输出参数@name创建了一个存储过程.但是当我调用它时,我收到 Null.如何正确调用该过程或该过程有错误?

I created a stored procedure with the output parameter @name. But when I call it, I receive Null. How do I correctly call the procedure or is there an error in the procedure?

CREATE PROCEDURE GetName(IN kartennummer CHAR(16), OUT name VARCHAR(91))
BEGIN
SELECT @name = (SELECT CONCAT_WS(' ', Vorname, Nachname) FROM Kunden kund JOIN Konten kont WHERE kund.KundenID = kont.KundenID AND kont.Kartennummer = kartennummer);
END;

我这样调用程序:

CALL GetNAME("7717015800401117", @name);

为什么我会收到Null而不是名称?Select 语句单独起作用.

Why do I receive Null and not the name? The Select statement alone works.

推荐答案

DELIMITER $$
CREATE PROCEDURE GetName(IN kartennummer CHAR(16), OUT name VARCHAR(91))
BEGIN
    SELECT 
        CONCAT_WS(' ', Vorname, Nachname)
        INTO 
        name
    FROM
        Kunden kund
            JOIN
        Konten kont
    WHERE
        kund.KundenID = kont.KundenID
            AND kont.Kartennummer = kartennummer;
END;
DELIMITER ;

这将只能工作,如果结果如果选择查询IHAS ONL1名称,但假设是您

This will only work , if the result if the select query ihas onl1 name, but assume that is the case for you

这篇关于为什么我从此存储过程中收到Null?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆