Cobol:[插入代码]

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


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

换句话说,重复键错误。

在java中,我通常通过触发选择查询来执行相同的操作,并在数据库中查找条目的存在,如果不存在,则插入记录。

在Java中还有其他方法可以处理-803情况吗?

最佳答案

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

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


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

关于java - Java中的COBOL-DB2 -803等效项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16813466/

10-10 14:55