Почему я получаю Null из этой хранимой процедуры? - PullRequest
0 голосов
/ 08 мая 2020

Я создал хранимую процедуру с выходным параметром @name. Но когда я его вызываю, я получаю Null. Как правильно вызвать процедуру или в процедуре есть ошибка?

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.

1 Ответ

0 голосов
/ 08 мая 2020
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 ;

Это будет работать только в том случае, если результат запроса select имеет имя onl1, но предполагается, что это ваш случай

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...