powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Ругается на DECLARE
18 сообщений из 18, страница 1 из 1
Ругается на DECLARE
    #38566159
pehser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
по пробовал написать функцию которая запишет мне в таблицу N-e количество записей
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE PROCEDURE add_acc (IN num INT)
begin 
  DECLARE i INT DEFAULT 0; 
  IF (num>0) THEN 
    WHILE i < num DO
      INSERT INTO `table` ( `name`, `Price`) VALUES ( 'Имя', '50');
      SET i=i+1;
    END WHILE;
  END IF;
end; 


в результате
CREATE PROCEDURE add_acc (IN num INT)
begin
DECLARE i INT DEFAULT 0;

Ответ MySQL: Документация
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 3

не пойму где ошибка
...
Рейтинг: 0 / 0
Ругается на DECLARE
    #38566309
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DELIMITER ?
...
Рейтинг: 0 / 0
Ругается на DECLARE
    #38566381
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
 DECLARE i signed DEFAULT 0; 

а если так?
...
Рейтинг: 0 / 0
Ругается на DECLARE
    #38676532
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglir
Код: sql
1.
 DECLARE i signed DEFAULT 0; 

а если так?
Все равно не работает!
Та же ошибка.
...
Рейтинг: 0 / 0
Ругается на DECLARE
    #38676672
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Ругается на DECLARE
    #38676718
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос решен.
Оказалось, что не все SQL-запросы корректно выполняются из phpMyAdmin!
Поставил себе MySQL Administrator локально и проблем не стало.
...
Рейтинг: 0 / 0
Ругается на DECLARE
    #38680272
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то снова не выходит у меня каменный цветок...
Пытаюсь выполнить скрипт в Query Browser
Код: sql
1.
2.
3.
4.
BEGIN
DECLARE ID INT;
SELECT category_id FROM store_category;
END;


и снова меня посылают на ту же самую ошибку #1064.
...
Рейтинг: 0 / 0
Ругается на DECLARE
    #38680282
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Взял из примера FAQ
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
DELIMITER //

CREATE PROCEDURE proc_version (OUT param1 VARCHAR(30) )
BEGIN
  SELECT @@version INTO param1;
END
//

DELIMITER ;

CALL proc_version(@a);

SELECT @a;



та же байда!You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELIMITER //

CREATE PROCEDURE proc_version (OUT param1 VARCHAR(30) )
BEGIN
' at line 1

Ох тяжко мне после MS SQL понять, в чем грабли, если даже примеры не работают...
...
Рейтинг: 0 / 0
Ругается на DECLARE
    #38680286
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008,

Вероятно, вы пытаетесь выполнить это в каком-то GUI-клиенте. У некоторых из них свой взгляд на DELIMITER.
Попробуйте без него. Также, возможно, в нем уже есть отдельное окно/форма для создания процедур.
...
Рейтинг: 0 / 0
Ругается на DECLARE
    #38680289
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft Вероятно, вы пытаетесь выполнить это в каком-то GUI-клиенте.
Вы правы!
Пользуюсь MySQL Query Browser.
Одну процедуру я успешно создал.
Но вот со скриптом непонятки
Код: sql
1.
2.
3.
4.
BEGIN
DECLARE ID INT;
SELECT category_id FROM store_category;
END;


Почему ругается?
...
Рейтинг: 0 / 0
Ругается на DECLARE
    #38680290
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это выполняет без проблем
Код: sql
1.
SELECT category_id FROM store_category;
...
Рейтинг: 0 / 0
Ругается на DECLARE
    #38680305
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008Но вот со скриптом непонятки
Код: sql
1.
2.
3.
4.
BEGIN
DECLARE ID INT;
SELECT category_id FROM store_category;
END;



Почему ругается?В MySQL нет анонимных процедур.
...
Рейтинг: 0 / 0
Ругается на DECLARE
    #38680675
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда понятно, но возникает другой вопрос - как можно отлаживать скрипты в MySQL?
Согласитесь, что это неудобно всякий раз создавать процедуру и дропать её?
...
Рейтинг: 0 / 0
Ругается на DECLARE
    #38680677
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще, вдогонку, как можно получать развернутую информацию по ошибке, как MS SQL, а не убогую "синтаксис неправильный, читайте документацию по mySQL"?
...
Рейтинг: 0 / 0
Ругается на DECLARE
    #38681268
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008И еще, вдогонку, как можно получать развернутую информацию по ошибке, как MS SQLиспользовать мсскл
...
Рейтинг: 0 / 0
Ругается на DECLARE
    #38681294
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008И еще, вдогонку, как можно получать развернутую информацию по ошибке, как MS SQL, а не убогую "синтаксис неправильный, читайте документацию по mySQL"?Обычно после слова near в сообщении об ошибке идет достаточно точное место этой самой ошибки.
Более развернуто, имхо, никак.
...
Рейтинг: 0 / 0
Ругается на DECLARE
    #38681297
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008Тогда понятно, но возникает другой вопрос - как можно отлаживать скрипты в MySQL?
Согласитесь, что это неудобно всякий раз создавать процедуру и дропать её?Именно так - создавать и дропать.

И, кстати, в MySQL нет встроенных средств отладки процедур. Используйте сторонние, например, 14579840 .
...
Рейтинг: 0 / 0
Ругается на DECLARE
    #38681760
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglirSQL2008И еще, вдогонку, как можно получать развернутую информацию по ошибке, как MS SQLиспользовать мсскл
Я бы с радостью, но сайт написан на PHP, переписать его нет ни возможности, ни времени.
Поэтому приходится интегрировать с центральной программой учета на MSSQL2008+C#.NET.
А для этого задуманы процедуры на MySQL, которые будут запускаться из Windows Frorm - приложения или из SSIS-задач.

Отдельное спасибо miksoft за наводку на DevArt!
Поставил, вроде пока все работает и прога нравится, работать удобно и тексты ошибок выдает внятные!
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Ругается на DECLARE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]