【问题标题】:Not able to create stored procedure in DB2无法在 DB2 中创建存储过程
【发布时间】:2019-03-03 03:04:30
【问题描述】:
我正在尝试使用 IBM DB2 Cloud 在 DB2 中创建一个存储过程。我收到的错误是:
在“”之后发现了一个意外的标记“END-OF-STATEMENT”。
有关错误的详细信息请参见下面的屏幕截图。
Click here for error screenshot
CREATE PROCEDURE trial_pro(in msg varchar(100))
language sql;
BEGIN
insert into collision values(msg);;
END
【问题讨论】:
标签:
stored-procedures
db2
【解决方案1】:
首先:
- 那里有“;”后面的语言sql是错误的。
- 两个“;”在带有插入的行之后没有意义并且与屏幕截图不匹配。
除此之外:虽然“;”是存储过程中的语句终止符,请确保为(外部)创建过程语句选择(配置)另一个。通常,您运行 SQL 的工具会提供更改它的选项。
【解决方案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(右上角的齿轮图标)-> 声明
终结者 -> @