Задавайте вопросы, мы ответим
Вы не зашли.
Страниц: 1
Скажем
DECLARE a,b,c int; -- ok
DECLARE a int, b char(255); -- not ok
Аналогично с SELECT, если идет присвоение переменным
Если я ставлю DECLARE не в начале, а после ряда предложений SELECT ...., то компиляция не проходит
Почему?
Неактивен
Igor Panshin написал:
Скажем
DECLARE a,b,c int; -- ok
DECLARE a int, b char(255); -- not ok
Аналогично с SELECT, если идет присвоение переменным
Нужно:
DECLARE a,c int;
DECLARE b char(255);
Igor Panshin написал:
Если я ставлю DECLARE не в начале, а после ряда предложений SELECT ...., то компиляция не проходит
Почему?
Локальные переменные должны быть явно декларированы до их использования.
Сначала идет декларирование, причем в строго определенном порядке: variables, conditions, cursors, handlers.
Неактивен
Igor Panshin написал:
Скажем
DECLARE a,b,c int; -- ok
DECLARE a int, b char(255); -- not ok
Аналогично с SELECT, если идет присвоение переменным
Если я ставлю DECLARE не в начале, а после ряда предложений SELECT ...., то компиляция не проходит
Почему?
Что мешает сделать DECLARE столько раз , сколько типов необходимо задать?
Компиляция и не должна пройти
http://dev.mysql.com/doc/refman/5.1/en/declare.html
Неактивен
На самом деле, конечно ничего не мешает, если варишься в собственном соку. Однако, когда выполняешь конвертацию инородных для Mysql SQL скриптов в mysql скрипт, то возникают вопросы типа почему. Поскольку я с детства почемучка, то я и спрашиваю. Насколько сложно добавить скажем в следующей версии движка Mysql возможность разбора
DECLARE , with a list,... and SELECT , with a list, ... ?
Или я обращаюсь не по адресу и разработчиков здесь нет?
Неактивен
Локальные переменные должны быть явно декларированы до их использования.
Это понятно. Вопрос в том, что как только я вставляю DECLARE не в начале, а контекст тела процедуры
типа
IF IncludeDeleted = 0
THEN
SET Step=1;
DECLARE ss int;
SET ss=1;
END IF;
так сразу же прилетает ошибка
You have an error in your SQL syntax; check ...
Неактивен
Igor Panshin написал:
Локальные переменные должны быть явно декларированы до их использования.
Это понятно. Вопрос в том, что как только я вставляю DECLARE не в начале, а контекст тела процедуры
типа
IF IncludeDeleted = 0
THEN
SET Step=1;
DECLARE ss int;
SET ss=1;
END IF;
так сразу же прилетает ошибка
You have an error in your SQL syntax; check ...
Там очень мало текста
http://dev.mysql.com/doc/refman/5.1/en/declare.html
DECLARE is allowed only inside a BEGIN ... END compound statement and must be at its start, before any other statements.
Неактивен
Igor Panshin написал:
На самом деле, конечно ничего не мешает, если варишься в собственном соку. Однако, когда выполняешь конвертацию инородных для Mysql SQL скриптов в mysql скрипт, то возникают вопросы типа почему. Поскольку я с детства почемучка, то я и спрашиваю. Насколько сложно добавить скажем в следующей версии движка Mysql возможность разбора
DECLARE , with a list,... and SELECT , with a list, ... ?
Или я обращаюсь не по адресу и разработчиков здесь нет?
Среди создателей форума SQLinfo нет разработчиков MySQL, мы скорее независимые консультанты по MySQL. Ничего конечно не мешает разработчикам MySQL AB/Sun читать форум. Если хотите донести мысль до разработчиков, напишите лучше на http://lists.mysql.com/ (по английски)
На такой вопрос разработчики вряд ли Вам ответят определенно. Реализовать это несложно, но у хранимых процедур сейчас масса ограничений, которые несложно устранить. Понятно, что в планах работа над этим заложена, но конкретную даты и версию, в которой это произойдет вряд ли кто-то назовет.
Неактивен
Да, спасибо. Больше не буду задавать такие глупые вопросы.
Неактивен
Igor Panshin написал:
Да, спасибо. Больше не буду задавать такие глупые вопросы.
Задавать можете, тем более, что часть планов MySQL AB известна
Неактивен
Страниц: 1