Ошибка SQL0443 при выполнении выбора с помощью триггера в DB2 for iSeries - PullRequest
0 голосов
/ 16 октября 2018

У меня возникла проблема с запросом таблицы db2 / as400, назовем ее TAB1.Поскольку при выполнении обычного SELECT (с помощью клавиши TAB1) в эту таблицу был добавлен триггер, я получаю следующую ошибку.Никогда не возникало проблем до создания триггера.

Это запрос, выполняемый в пакетном приложении (Java 1.6) с использованием Modern Batch и Spring Batch 2.1.8.Нет шансов обновить библиотеки, так как программа довольно старая и клиенты не согласятся.

В любом случае, я бы сказал, что это проблема триггера (как говорят коды sql), но разные приложения выполняют разные операции SELECT на TAB1, и у них никогда не возникает подобных проблем. Пакет выполняет более или менее 40000 операций выбора, как этот, ипросто 300 не с этой ошибкой.

Есть идеи, советы, предложения?

### Error querying database.  Cause: java.sql.SQLException: [SQL0443] *N *N  
### The error may exist in class path resource [eu/mycompany/el20/dq/as400/dataaccess/mappers/tab1/Tab1Mapper.xml]  
### The error may involve eu.mycompany.el20.dq.as400.dataaccess.persistence.tab.Tab1Mapper.selectByExample-Inline  
### The error occurred while setting parameters  
### SQL: select * from  TAB1 WHERE (  D10_SOC = ? and D10_COD_NDG = ?  and D10_DATE = ? )  
### Cause: java.sql.SQLException: [SQL0443] *N *N  
; uncategorized SQLException for SQL []; SQL state [38501]; error code [-443]; [SQL0443] *N *N; nested exception is java.sql.SQLException: [SQL0443] *N *Nstack trace: org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83)  
org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)  
org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)  
org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:71)  
org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:365)  
com.sun.proxy.$Proxy120.selectList(Unknown Source)  
org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:195)  
org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:124)  
org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:90)  
org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:40)  
com.sun.proxy.$Proxy136.selectByExample(Unknown Source)  
eu.mycompany.el20.dq.as400.crud.services.tab.BLSTab1.select(BLSTab1.java:46)  
it.mycompany.xframe.dq.batch.steps.programstep.ProgramExecutor.processRecord(ProgramExecutor.java:544)  
com.ibm.websphere.batch.devframework.steps.technologyadapters.GenericXDBatchStep.processRecord(GenericXDBatchStep.java:263)  
com.ibm.websphere.batch.devframework.steps.technologyadapters.GenericXDBatchStep.processJobStep(GenericXDBatchStep.java:227)  
com.ibm.ws.gridcontainer.batch.impl.StepManagerImpl._regularJobBatchLoop(StepManagerImpl.java:1065)  
com.ibm.ws.gridcontainer.batch.impl.StepManagerImpl.executeStep(StepManagerImpl.java:390)  
com.ibm.ws.gridcontainer.security.actions.ExecuteStepBatchUserPrivilegedAction.executeAction(ExecuteStepBatchUserPrivilegedAction.java:47)  
com.ibm.ws.gridcontainer.security.AbstractUserPrivilegedAction.runWithoutSecurity(AbstractUserPrivilegedAction.java:66)  
com.ibm.ws.gridcontainer.services.impl.WASRunUnderCredentialServiceImpl.runUnderUserCredential(WASRunUnderCredentialServiceImpl.java:134)  
com.ibm.ws.gridcontainer.services.impl.WASRunUnderCredentialServiceImpl.runActionUnderUserCredential(WASRunUnderCredentialServiceImpl.java:386)  
com.ibm.ws.gridcontainer.batch.impl.JobManagerImpl._sequentialStepScheduling(JobManagerImpl.java:783)  
com.ibm.ws.gridcontainer.batch.impl.JobManagerImpl.executeJob(JobManagerImpl.java:199)  
com.ibm.ws.batch.BatchJobControllerWork._runJob(BatchJobControllerWork.java:435)  
com.ibm.ws.batch.BatchJobControllerWork.run(BatchJobControllerWork.java:241)  
com.ibm.ws.asynchbeans.J2EEContext$RunProxy.run(J2EEContext.java:271)  
java.security.AccessController.doPrivileged(AccessController.java:399)  
com.ibm.ws.asynchbeans.J2EEContext.run(J2EEContext.java:797)  
com.ibm.ws.asynchbeans.WorkWithExecutionContextImpl.go(WorkWithExecutionContextImpl.java:222)  
com.ibm.ws.asynchbeans.ABWorkItemImpl.run(ABWorkItemImpl.java:206)  
java.lang.Thread.run(Thread.java:790)

1 Ответ

0 голосов
/ 16 октября 2018

Текст сообщения SQL0443: «Программа-триггер или внешняя подпрограмма обнаружила ошибку».

Я бы посоветовал посмотреть на задание сервера базы данных хоста для соединения JDBC.

В IBMВ командной строке введите команду WRKOBJLCK OBJ(<user>) OBJTYPE(*USRPRF) (где - это профиль пользователя, который вы используете для подключения JDBC) и найдите задания с именем QZDASOINIT.Это задания сервера хоста базы данных.

В этих заданиях просмотрите журнал заданий (или файл спула заданий), чтобы найти сообщение SQL0443 ... вокруг этого сообщения вы должны увидеть, что является действительной ошибкой.

...