SQL7008N

获取 SQL7008N时, SQLSTATE=55019 可能会在 Db2® for iSeries 表上执行插入/更新时发生。

问题

Db2 for iSeries 表执行插入或更新操作时,可能会发生以下错误:
SQL7008N REXX variable "" contains inconsistent data. SQLSTATE=55019

原因

Db2 for iSeries 表未启用日志记录。

解决方案

要解决此问题,请执行下列其中一项操作:
  • Db2 for iSeries 表启用日志记录。 您可以联系 Db2 for iSeries DBA。
  • 如果应用程序发生此错误,请对特定于应用程序的隔离级别属性指定以下值:NO COMMIT
  • 对于 CLI/ODBC 应用程序:
    • db2cli.cfg 中,将 TXNIsolation CLI 关键字更新为值 32:
      'db2 update cli cfg for section <dsn> using TXNIsolation 32'
      然后重新启动该应用程序。
  • 对于 .NET 应用程序:
    • 在连接字符串中,将 IsolationLevel 更新为 'chaos'。 或者,如果您正在使用 db2dsdriver.cfg,那么可以在 db2dsdriver.cfg 中指定它。
  • 对于 JDBC 应用程序:
    • Db2 JDBC 驱动程序不支持隔离级别 NONENO COMMIT。 您可能需要使用先前的启用日志记录或者更新 TXNIsolation CLI 关键字的解决方案。
  • 改变 SQL 语句,使其末尾包括“WITH NONE”或者“WITH NC”。 例如:
    insert into <tableName> values ('a', 'b') with NC
    insert into <tableName> values ('a', 'b') with NONE