【发布时间】:2012-11-16 05:06:22
【问题描述】:
我们需要使用 Business Objects Data Integrator 11.7 更新 AS/400 上的 DB2 数据库表中的记录。数据集成器设计器版本为 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作业会生成以下四个更新SQL,在这个Bulk Records更新上会显示Driver error。
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
【问题讨论】:
-
你能举一个你试图运行的语句的例子吗?
-
您检查过 iSeries 上的作业日志以了解 SQL 作业吗?
-
@Jane 谢谢我们已在 Data Integrator 管理控制台中检查了“作业错误日志”。你能告诉我如何检查 iSeries 上的工作日志吗?
-
您的批量更新似乎包含大量 SQL 语句。没有分号,您是否尝试过重新格式化以将所有序列放在 in 子句中?
-
您能告诉我们更多有关您的应用程序逻辑流程的信息吗?可能有更好的方法来实现您想要完成的目标。
标签: db2 odbc driver ibm-midrange business-objects