#stored-procedures #db2
#хранимые процедуры #db2
Вопрос:
Я пытаюсь создать хранимую процедуру в DB2, используя IBM DB2 Cloud. Я получаю ошибку как:
После «» был обнаружен неожиданный токен ‘END-OF-STATEMENT’.
Подробная информация об ошибке приведена на скриншоте ниже.
Нажмите здесь, чтобы получить скриншот ошибки
CREATE PROCEDURE trial_pro(in msg varchar(100))
language sql;
BEGIN
insert into collision values(msg);;
END
Ответ №1:
Прежде всего:
- Там «;» за языком sql стоит ошибка.
- Два «;» после строки со вставкой не имеют смысла и не совпадают со снимком экрана.
В дополнение к этому: Хотя «;» является ограничителем инструкции внутри вашей хранимой процедуры, обязательно выберите (настройте) другую инструкцию для (внешней) инструкции create procedure. Обычно инструменты, с помощью которых вы запускаете SQLS, предлагают возможность ее изменения.
Ответ №2:
Вы должны изменить завершитель инструкции по умолчанию ( ;
), если вы используете составную инструкцию.
В консоли DSM вы можете сделать это либо временно для какой-либо конкретной инструкции:
--#SET TERMINATOR @
CREATE PROCEDURE trial_pro(in msg varchar(100))
language sql
BEGIN
insert into collision values(msg);
END@
--#SET TERMINATOR ;
или установить ее по умолчанию с помощью:
Editor options
(значок шестеренки в правом верхнем углу) -> Завершитель инструкции -> @