1

Cobol:[插入代码]

 EVALUATE SQLCODE
           WHEN +000
            ...
           WHEN -803
             ...
           WHEN OTHER
             ...
       END-EVALUATE.

此代码评估 SQLCODE,重复条目在此处由 -803 处理。-803 错误是插入或更新的值无效,因为索引空间中的索引 indexspace-name 限制表的列,因此没有两行可以在这些列中包含重复的值。现有行的 RID 是 X 记录 ID。

换句话说,重复键错误。

在 java 中,我通常通过触发选择查询并在数据库中查找条目是否存在,如果它不存在则插入记录。

有没有其他方法可以处理 Java 中的 -803 情况?

4

1 回答 1

4

在 Java 中,您想要捕获SQLException并测试错误代码:

PreparedStatement stmt = ...;
try
{
    stmt.executeUpdate();
}
catch (SQLException e) {
    if (e.getErrorCode() == -803)
    {
        // handle duplicate entry
    }
    else
    {
        // handle other errors
    }
}

请注意,此代码是 DB2 特定的,因为 -803 是供应商特定的错误代码。

于 2013-05-29T13:57:51.403 回答