DB2 无法创建简单的存储过程

DB2 can't create a simple stored procedure

我真正的存储过程要复杂得多,但 DB2 似乎甚至不能创建一个什么都不做的虚拟存储过程(这就是我发布这个虚拟过程的原因)。程序如下

CREATE PROCEDURE SIMPLE_DECL_PROC()
LANGUAGE SQL
BEGIN
DECLARE v varchar(16);//the problem is here
END

我收到以下错误:

2:59:31  [CREATE - 0 row(s), 0.000 secs]  [Error Code: -104, SQL State: 42601]  
DB2 SQL Error: SQLCODE=-104, SQLSTATE=42601, SQLERRMC=END-OF-STATEMENT;ECLARE v varchar(16);<psm_semicolon>, DRIVER=3.57.82

尽管我看不出它有什么问题,但该错误抱怨 declare 语句(尝试删除末尾的 ; 但没有成功)。

如果我去掉 declare 语句,过程创建成功。

我尝试用 DBVisualizer 和 SQL Squirrel 来做到这一点。

我确定它很简单,但我找不到它了。不用说,我已经在 SO 和其他地方检查过类似的问题。

最后,我们使用 DB2 9.7。

谢谢

大多数SQL 客户端允许设置所谓的语句终止符。这是整个语句末尾的字符。默认情况下,大多数客户端使用分号 (";")。对于存储过程,通常需要选择和设置不同的语句终止符。这是因为存储过程可以包含多个终止的 SQL 语句,但只有整个存储过程中的那些语句是相关的。