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 ジョブの選択クエリが 1 つのレコードのみでフィルター処理される場合、以下の更新ステートメントが生成され、Data Integrator を介して実行されます。この場合、ドライバーエラーは表示されません。

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

選択クエリがフィルタリングされていない場合、以下の 4 つの更新 SQL が DI ジョブによって生成され、この一括レコード更新でドライバー エラーが表示されます。

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 ナビゲーターを開き、[ヘルプ]/[バージョン情報] を参照してください。そこに示されているバージョンは、サーバー上の IBM i OS のリリースと少なくとも同じかそれ以上である必要があります。IBM i Access ドライバーの上位バージョンは、サーバー OS の少なくとも 2 つの以前のリリースをサポートする必要があります。詳細が必要な場合は、この互換性ページを参照してください。

現在、最新のリリースは、IBM i と IBM Access for Windows の両方で 7.1 です。

次に、常に最新のサービス パックがインストールされていることを確認してください。

于 2012-11-20T07:14:25.600 に答える