Java中的COBOL-DB2 -803等价物

时间:2013-05-29 12:06:53

标签: java cobol

Cobol:[INSERT CODE]

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

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

换句话说,重复键错误。

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

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

1 个答案:

答案 0 :(得分:4)

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

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

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