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

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

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?

mysql,sql,function,stored-procedures,

0

Ответов: 1


1 принят

Вам необходимо изменить CREATE PROCEDURE, в то время как создание процедурного_имитатора в противном случае ;рассматривается как конец //оператора.

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

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

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

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

DELIMITER $$

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

DELIMITER ;
MySQL, SQL, функция, хранимая-процедура,
Похожие вопросы