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 语句,但只有整个存储过程中的那些语句是相关的。
我真正的存储过程要复杂得多,但 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 语句,但只有整个存储过程中的那些语句是相关的。