За последние 24 часа нас посетили 23087 программистов и 1225 роботов. Сейчас ищет 741 программист ...

Необъявленная переменная (Undeclared variable)

Тема в разделе "MySQL", создана пользователем Зингер, 28 фев 2020.

  1. Зингер

    Зингер Активный пользователь

    С нами с:
    20 июл 2017
    Сообщения:
    127
    Симпатии:
    7
    Пытаюсь сделать в ХП динамический запрос.
    Из примера
    Код (Text):
    1. CREATE DEFINER = 'mysql'@'%'
    2. PROCEDURE my_bd.procedure_test(OUT Param1 DECIMAL(12,2))
    3. BEGIN
    4. PREPARE stmt1 FROM 'SELECT SQRT(POW(?,2) + POW(?,2)) into Param1';
    5. SET @a = 3;
    6. SET @b = 4;
    7. EXECUTE stmt1 USING @a, @b;
    8. DEALLOCATE PREPARE stmt1;
    9. END
    При выполнении вылазит ошибка "Undeclared variable: Param1".
    Что не так?
     
  2. Зингер

    Зингер Активный пользователь

    С нами с:
    20 июл 2017
    Сообщения:
    127
    Симпатии:
    7
    Решение найдено!
    Код (Text):
    1. CREATE DEFINER = 'mysql'@'%'
    2. PROCEDURE my_bd.procedure_test(OUT Param1 DECIMAL(12,2))
    3. BEGIN
    4. DECLARE result decimal(12,2);
    5. PREPARE stmt1 FROM 'SELECT SQRT(POW(?,2) + POW(?,2)) as sqrt into @result';
    6. SET @a = 3;
    7. SET @b = 4;
    8. EXECUTE stmt1 USING @a, @b;
    9. DEALLOCATE PREPARE stmt1;
    10. SELECT @result INTO Param1;
    11. END