SQL 1064 в процедурах

0

Эй, я сейчас учусь на экзамене. У меня проблема с процедурами и функциями.

CREATE PROCEDURE testProc()
BEGIN
  DECLARE testNR INT;
END

Это мой testCode, но каждая процедура и каждая функция дают мне эту ошибку:

Error: 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 '' at line 3
SQLState:  42000
ErrorCode: 1064
Error occurred in:
CREATE PROCEDURE testProc()
BEGIN
    DECLARE testNR INT

Есть ли что-то, что я делаю неправильно или у меня проблемы с моей IDE SQuirrel?

  • 0
    Используйте DELIMITER до и после объявления процедуры.
Теги:
stored-procedures
function

1 ответ

1
Лучший ответ

При создании процедуры вам необходимо изменить разделители; в противном случае ; рассматривается как конец инструкции CREATE PROCEDURE.

Как поясняется в документах, вам необходимо

используйте [] команду delimiter клиента mysql для изменения разделителя операторов ; до // пока процедура определена. Это позволяет; разделитель, используемый в теле процедуры, который должен быть передан на сервер, а не интерпретируется самой mysql. См. Раздел 23.1 "Определение сохраненных программ".

Это не должно быть //; другой общий выбор - $$.

В вашем примере это может выглядеть так:

DELIMITER $$

CREATE PROCEDURE testProc()
BEGIN
  DECLARE testNR INT;
END
$$

DELIMITER ;
  • 0
    Эй спасибо да проблема была;
  • 0
    Рад помочь! Пожалуйста, не забудьте выбрать ответ! :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню