【问题标题】:DB2 ERRORCODE=-4229, SQLSTATE=nullDB2 错误代码=-4229,SQLSTATE=null
【发布时间】:2013-08-06 07:32:06
【问题描述】:

我在执行批处理操作时遇到此错误。 Use getNextException() to retrieve the exceptions for specific batched elements.ERRORCODE=-4229, SQLSTATE=null

我没有找到任何指针来继续调试此错误。

感谢任何帮助!!!

【问题讨论】:

  • 您是否尝试调用 getNextException() 来查看它是否提供了任何其他详细信息? onjava.com/pub/a/onjava/excerpt/javaentnut_2/index3.html
  • 其实这个批处理操作是在一个被调用的jar文件里面所以无法调用getNextException()
  • 您是否直接从 CLP 检查了与 DB2 的连接? db2 连接到 xxx,然后在那里做同样的操作。没有 sqlstate 很奇怪
  • Atlast 从 db2 获得了额外的错误消息。 DB2 SQL 错误:SQLCODE=-530, SQLSTATE=23503 看起来与插入的 PK 重复记录有关。

标签: db2


【解决方案1】:

在 IBM 页面上搜索错误:

http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp?topic=%2Fcom.ibm.db2z10.doc.java%2Fsrc%2Ftpc%2Fimjcc_rjvjcsqc.htm

-4229 消息文本:text-from-getMessage 解释:批处理执行过程中发生错误。

用户响应:调用 SQLException.getMessage 来检索特定的 有关问题的信息。

因此,它可能与执行批量插入/更新/删除期间的任何潜在错误有关

【讨论】:

    【解决方案2】:

    对于那些正在寻找解决此错误的人。

    对我来说这是由于

    THE INSERT OR UPDATE VALUE OF FOREIGN KEY constraint-name IS INVALID. DB2 SQL Error: SQLCODE=-530, SQLSTATE=23503

    【讨论】:

    • 实际上这是可能触发此错误的原因之一。在下面查看我的答案
    【解决方案3】:

    在我的例子中,这是因为我在两列上定义了一个唯一的覆盖索引,并且在我插入记录时这两个值的组合不是唯一的。

    【讨论】:

      【解决方案4】:

      对于仍有疑问的任何人,请尝试输入唯一记录并检查错误是否仍然存在? 对我来说,这是因为外键重复输入。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-09-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-24
        • 1970-01-01
        • 2011-11-20
        • 1970-01-01
        相关资源
        最近更新 更多