DB2 存储过程中的错误

Posted

技术标签:

【中文标题】DB2 存储过程中的错误【英文标题】:ERROR in DB2 stored procedure 【发布时间】:2013-02-07 10:11:22 【问题描述】:

以下存储过程有什么问题?

CREATE PROCEDURE TEST
     (IN mbr VARCHAR(30),
      OUT sql_state CHAR(5)
    ) 
DYNAMIC RESULT SETS 1 LANGUAGE SQL BEGIN DECLARE SQLSTATE CHAR(5);
DECLARE rs CURSOR WITH RETURN TO CLIENT FOR
    SELECT
            *
        FROM
            A.XYZ;
OPEN rs;
SET
sql_state = SQLSTATE;

END @;

【问题讨论】:

你得到什么错误信息? 这是 DB2 SQ 错误:SQLCODE: -104, SQLSTATE: 42601 这正常吗? END @;?? 【参考方案1】:

根据信息中心,SQL Code -104 表示您在某处有一个非法符号。在完整的错误消息中,它应该指出非法符号的位置。

我的猜测是您的语句终止符有些混淆,请查看this article。

【讨论】:

【参考方案2】:

如果你在命令编辑器中运行它,那么你只需要

将您的默认终止字符从分号 (;) 更改为某事 否则

它会起作用的。

您可以在此处查看 IBM 技术说明:http://www-01.ibm.com/support/docview.wss?uid=swg21224723

【讨论】:

以上是关于DB2 存储过程中的错误的主要内容,如果未能解决你的问题,请参考以下文章

运行存储过程时出现 db2 存储错误

DB2存储过程中的OUT参数问题

通过 JMeter 调用 DB2 存储过程时出现语法错误

db2 存储过程 异常处理

如何在 IBM Data Studio 中查看 DB2 存储过程的解释计划?

如何使用 SQL 使用 DB2 中的存储过程插入表?