Не удалось создать хранимую процедуру в DB2 - PullRequest
0 голосов
/ 03 марта 2019

Я пытаюсь создать хранимую процедуру в DB2 с использованием IBM DB2 Cloud.Я получаю сообщение об ошибке:

Неожиданный токен 'END-OF-STATEMENT' был найден после "".

Подробно об ошибке можно увидеть на скриншотениже.

Нажмите здесь, чтобы увидеть скриншот ошибки

CREATE PROCEDURE trial_pro(in msg varchar(100))
language sql;
BEGIN
    insert into collision values(msg);;
END

Ответы [ 2 ]

0 голосов
/ 03 марта 2019

Вы должны изменить терминатор оператора по умолчанию (;), если используете составной оператор.
В консоли DSM вы можете сделать это временно или для какого-то конкретного оператора:

--#SET TERMINATOR @
CREATE PROCEDURE trial_pro(in msg varchar(100))
language sql
BEGIN
    insert into collision values(msg);
END@
--#SET TERMINATOR ;

илиустановите его по умолчанию с помощью:

Editor options (значок шестеренки в правом верхнем углу) -> терминатор оператора -> @

0 голосов
/ 03 марта 2019

Прежде всего:

  • Там ";"за языком sql неправильно.
  • Два ";"после строки со вставкой не имеют смысла и не совпадают со скриншотами.

В дополнение к этому: Пока ";"если терминатор оператора внутри вашей хранимой процедуры, убедитесь, что вы выбрали (сконфигурировали) другой для (внешней) инструкции процедуры создания.Обычно инструменты, которые вы запускаете SQL, предлагают возможность изменить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...