创建简单的 DB2 sql 过程时出错

Posted

技术标签:

【中文标题】创建简单的 DB2 sql 过程时出错【英文标题】:Error while creating a simple DB2 sql procedure 【发布时间】:2016-04-09 17:43:40 【问题描述】:

我正在尝试在 DB2 z/OS 10.1.5 上创建一个 db2 过程。我使用的代码是:

CREATE PROCEDURE WSDIWW16.CALCULATE_SALARY()
LANGUAGE SQL
BEGIN ATOMIC
update wsdiww16.emptable
set dailywage = dailywage * 30;
END;

我得到 sqlcode - 104

SQL0104N  An unexpected token "<END-OF-STATEMENT>" was found following "". 
Expected tokens may include:  "DECLARE".

我之前没有创建过 sql 过程。有人可以帮忙吗?

【问题讨论】:

db2 stored procedures creation behavior的可能重复 这不适用于 db2 zOs 查看www-01.ibm.com/support/docview.wss?uid=swg21568227 【参考方案1】:

CREATE 语句中有两个分号。第一个字符必须是被识别为语句终止符的不同字符。

您使用的是什么开发环境?在 Rational Developer for z 中,您可以右键单击编辑器并选择 Set Statement Terminator 选项:

1

Data Studio 等中应该有类似的选项。

【讨论】:

【参考方案2】:

您应该使用结束行终止符,例如“/”并使用以下命令执行您的查询 -

db2 +c -td/ -vf SQL_file_name

HTH

【讨论】:

【参考方案3】:

图形菜单的答案对我有用。在我的 SQL 脚本中,我在空白处的任意位置单击鼠标右键。上面的菜单随即出现。然后我左键单击“设置语句终止符”(按要求)。然后我将终止符更改为“#”(无引号)。之后是分号字符“;”又开始工作了。

我希望这会有所帮助。

【讨论】:

【参考方案4】:

我认为您需要以“/”结束您的程序。

【讨论】:

以上是关于创建简单的 DB2 sql 过程时出错的主要内容,如果未能解决你的问题,请参考以下文章

尝试启动 DB2 实例时出错。返回代码为2 , SQL消息 为: PROCESS_ERROR

尝试使用 Python 连接 DB2 上的表时出错 (SQL0332N)

(转)创建DB2实例时出错,请大家帮忙解决

Python中执行sql脚本时GO语句出错问题

db2如何创建存储过程

Windows服务器DB2数据库建库过程演示,db2创建表空间分配权限