Грешка при актуализиране на таблицата на DB2 база данни на AS/400 с помощта на Business Objects Data Integrator 11.7

трябва да актуализираме записите в таблицата на DB2 база данни на AS/400 с помощта на Business Objects Data Integrator 11.7. Версията на Data integrator Designer е 11.7.3 Инсталираните драйвери са iSeries ACCESS ODBC драйвер 11.0.2, CLIENT ACCESS ODBC драйвер 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 задача е филтрирана само за един запис, по-долу се генерира израз за актуализиране и се изпълнява чрез Data Integrator. В този случай не се показва грешка на драйвера.

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

Ако заявката за избор не е филтрирана, по-долу четири SQL за актуализиране се генерират от DI Job, грешка на драйвера се показва при тази актуализация на групови записи.

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

person Ananth    schedule 16.11.2012    source източник
comment
Можете ли да дадете пример за изявлението, което се опитвате да изпълните?   -  person David G    schedule 16.11.2012
comment
Проверихте ли дневника на задачите на iSeries за SQL заданието?   -  person Jane T    schedule 17.11.2012
comment
@Jane Благодаря. Проверихме в „Регистъра на грешките в работата“ в конзолата за управление на Data Integrator. Можете ли да посъветвате как да проверя дневника на задачите на iSeries.   -  person Ananth    schedule 19.11.2012
comment
@david.Благодаря.Актуализирах въпроса с примера.   -  person Ananth    schedule 19.11.2012
comment
Вашата групова актуализация изглежда е много SQL изрази. без точка и запетая, опитвали ли сте да реформирате, за да поставите всички последователности в клауза in?   -  person Jane T    schedule 19.11.2012
comment
Можете ли да ни кажете повече за логическия поток на вашето приложение? Може да има по-добър начин да подходите към това, което се опитвате да постигнете.   -  person WarrenT    schedule 22.11.2012


Отговори (2)


Не виждам точка и запетая между вашите оператори UPDATE.

Може да обмислите и други методи. Например:

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

or

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

Ако има някакъв начин да кодирате условието WHERE като fullSelect, бихте могли да постигнете това в един SQL оператор. Обработката "задаване по време" е много по-ефективна от обработката "ред по време".

person WarrenT    schedule 19.11.2012
comment
@ Уорън..Благодаря Да. Вие сте прави, че няма точка и запетая в израза за актуализиране. Тези sql се записват във файла (Overflow), зададен от DI JOB, докато изпълнява заданието. тези sql нямат точка и запетая по подразбиране, ние използваме тази опция за файлов поток, за да проверим дали sql, генериран от DI задание, е правилен или не. Тъй като получаваме грешка в драйвера, има ли някаква несъвместимост на използваните ODBC драйвери (iSeries ACCESS ODBC драйвер 11.0.2, CLIENT ACCESS ODBC DRIVER 11.0.2) за версията DI (Business Objects Data Integrator 11.7. Data integrator Designer версията е 11.7.3) - person Ananth; 20.11.2012
comment
@JaneT . Благодаря, Джейн, Records ще чете последователно от източника и ще актуализира целта като множество sql заявки. - person Ananth; 22.11.2012

Вашият драйвер ще бъде част от IBM i Access за Windows. За да се уверите, че имате най-новата версия, отворете System i Navigator и погледнете под Help / About. Показаната там версия трябва да е поне толкова висока или по-висока от версията на IBM i OS на вашия сървър. По-висока версия на драйвера за IBM i Access трябва да поддържа поне 2 предишни версии на сървърната операционна система. Вижте тази страница за съвместимост, ако имате нужда повече информация.

В момента най-новата версия е 7.1 както за IBM i, така и за IBM Access за Windows.

След това винаги се уверявайте, че имате най-новия сервизен пакет инсталиран.

person WarrenT    schedule 20.11.2012