2

我们需要使用 Business Objects Data Integrator 11.7 更新 AS/400 上的 DB2 数据库表中的记录。Data integrator Designer 版本是 11.7.3 安装的驱动程序是 iSeries ACCESS ODBC Driver 11.0.2,CLIENT ACCESS ODBC DRIVER 11.0.2

我们可以对单个记录进行更新,但是在进行批量更新时,我们收到以下错误消息,有人可以帮忙吗?

DBS-070401: ODBC DATA SOURCE <xxxx> Error Message for Operation
<SQLExecute>: <[IBM][iSeries Access ODBC Driver]Driver not capable.>
RUN-051005:
Execution of <Regular Load Operations> for target <XXX_XXXX> failed. Possible causes: (1) Error in the SQL syntax; (2) Database
connection is broken; (3) Database related errors such as transaction log is full, etc.; (4) The user defined in the datastore
has insufficient privileges to execute the SQL. If the error is for preload or postload operation, or if it is for regular load
operation and load triggers are defined, please check the SQL. Otherwise, for (3) and (4), please contact your local DBA.

如果 DI 作业的 select Query 仅针对一条记录进行过滤,则会生成以下更新语句并通过 Data Integrator 执行。在这种情况下,不会显示驱动程序错误。

UPDATE TIBCO_STG.PUB_AREA SET ADB_L_DELIVERY = 'C'   WHERE ADB_SEQUENCE = 22849415 

如果选择查询没有过滤,DI Job 会生成以下四个更新 SQL,在此 Bulk 记录更新上会显示 Driver 错误。

UPDATE TIBCO_STG.PUB_AREA SET ADB_L_DELIVERY = 'C'   WHERE ADB_SEQUENCE = 22849415 
UPDATE TIBCO_STG.PUB_AREA SET ADB_L_DELIVERY = 'C'   WHERE ADB_SEQUENCE = 22849416 
UPDATE TIBCO_STG.PUB_AREA SET ADB_L_DELIVERY = 'C'   WHERE ADB_SEQUENCE = 22849417 
UPDATE TIBCO_STG.PUB_AREA SET ADB_L_DELIVERY = 'C'   WHERE ADB_SEQUENCE = 22849418
4

2 回答 2

3

我在您的 UPDATE 语句之间看不到任何分号。

您可能还想考虑其他方法。例如:

UPDATE TIBCO_STG.PUB_AREA 
  SET ADB_L_DELIVERY = 'C' 
  WHERE ADB_SEQUENCE in (22849415, 22849416, 22849417, 22849418)

或者

UPDATE TIBCO_STG.PUB_AREA 
  SET ADB_L_DELIVERY = 'C' 
  WHERE ADB_SEQUENCE in (select seq from someFullSelectOrWorkFile)

如果有某种方法可以将 WHERE 条件编码为 fullSelect,您将能够在单个 SQL 语句中完成此操作。Set-at-a-time 处理比 row-at-a-time 效率高得多。

于 2012-11-19T18:11:24.853 回答
2

您的驱动程序将是 IBM i Access for Windows 的一部分。为确保您拥有最新版本,请打开 System i Navigator,然后查看帮助/关于。那里显示的版本应该至少与服务器上的 IBM i OS 版本一样高或更高。更高版本的 IBM i Access 驱动程序应支持至少 2 个先前版本的服务器操作系统。如果您需要更多详细信息,请参阅此兼容性页面。

目前,IBM i 和 IBM Access for Windows 的最新版本是 7.1。

接下来,始终确保您安装了最新的服务包

于 2012-11-20T07:14:25.600 回答