技术文章 - CS259113
库存水平生成失败,并在 Servigistics 服务零件管理中出现错误“SQL 加载程序失败”
已修改: 08-Dec-2023
适用于
- Servigistics Service Parts Management 11.2.1 to 13.0.0.0
说明
- 库存水平生成失败,错误SQL 加载程序失败
- Autopilot.log包含如下消息:
ERROR com.svg.core.util.EventLog - Task Stock Level Generation failed with message: SQL Loader failed. java.lang.RuntimeException: SQL Loader failed. at com.svg.core.dataprovider.bulkinsert.OracleBulkInsert.doBulkInsert(OracleBulkInsert.java:50) at com.svg.core.dataprovider.bulkinsert.AbstractBulkInsert.commitUpdates(AbstractBulkInsert.java:290) at com.svg.core.dataprovider.bulkinsert.AbstractBulkInsert.flush(AbstractBulkInsert.java:194) at com.svg.core.dataprovider.BulkOutput.flush(BulkOutput.java:158) at com.svg.core.process.Output.writeResults(Output.java:115) at com.svg.planning.process.stocklevel.SLConnector.runLevels(SLConnector.java:118) at com.svg.planning.process.stocklevel.SLConnector.doProcess(SLConnector.java:79) at com.svg.core.process.ThreadableConnector.process(ThreadableConnector.java:32) at com.svg.core.process.ThreadableConnector.process(ThreadableConnector.java:23) at com.svg.core.process.BatchConnectorImpl.doRun(BatchConnectorImpl.java:106) at com.svg.core.process.BatchConnectorImpl.access$000(BatchConnectorImpl.java:33) at com.svg.core.process.BatchConnectorImpl$1.doInTransaction(BatchConnectorImpl.java:91) at com.svg.core.database.TransactionUtil.execute(TransactionUtil.java:51) at com.svg.core.process.BatchConnectorImpl.run(BatchConnectorImpl.java:88) at com.svg.core.task.BatchTask.runConnector(BatchTask.java:84) at com.svg.core.task.AbstractTask.run(AbstractTask.java:216) at com.svg.core.task.BatchTask.run(BatchTask.java:70) at sun.reflect.GeneratedMethodAccessor277.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:51) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:91) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at com.sun.proxy.$Proxy663.run(Unknown Source) at com.svg.core.service.impl.TaskServiceImpl$1.run(TaskServiceImpl.java:434) at java.lang.Thread.run(Thread.java:745) at com.svg.core.util.ThreadUtil$1.run(ThreadUtil.java:43)
或ERROR com.svg.core.util.EventLog - Task Stock Level Generation failed with message: executeUpdate; SQL [insert into ##IPCSTMP_L48687 values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, org.springframework.dao.DataIntegrityViolationException: executeUpdate; SQL [insert into ##IPCSTMP_L48687 values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)]; Arithmetic overflow error converting float to data type numeric.; nested exception is java.sql.BatchUpdateException: Arithmetic overflow error converting float to data type numeric. at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246) ~[spring-jdbc-5.0.19.RELEASE.jar:5.0.19.RELEASE] at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72) ~[spring-jdbc-5.0.19.RELEASE.jar:5.0.19.RELEASE] at com.svg.core.database.BatchUpdate.update(BatchUpdate.java:165) ~[AutoPilotServer.jar:12.2.1.1] at com.svg.core.dataprovider.bulkinsert.AbstractBulkInsert.doBatchUpdate(AbstractBulkInsert.java:275) ~[AutoPilotServer.jar:12.2.1.1] at com.svg.core.dataprovider.bulkinsert.AbstractBulkInsert.access$000(AbstractBulkInsert.java:32) ~[AutoPilotServer.jar:12.2.1.1] at com.svg.core.dataprovider.bulkinsert.AbstractBulkInsert$1.doInTransaction(AbstractBulkInsert.java:235) ~[AutoPilotServer.jar:12.2.1.1] at com.svg.core.database.TransactionUtil.execute(TransactionUtil.java:61) ~[AutoPilotServer.jar:12.2.1.1] at com.svg.core.dataprovider.bulkinsert.AbstractBulkInsert.writeBatch(AbstractBulkInsert.java:232) ~[AutoPilotServer.jar:12.2.1.1] at com.svg.core.dataprovider.bulkinsert.AbstractBulkInsert.flush(AbstractBulkInsert.java:191) ~[AutoPilotServer.jar:12.2.1.1] at com.svg.core.dataprovider.BulkOutput.flush(BulkOutput.java:160) ~[AutoPilotServer.jar:12.2.1.1] at com.svg.core.process.Output.writeResults(Output.java:115) ~[AutoPilotServer.jar:12.2.1.1] at com.svg.planning.process.stocklevel.SLConnector.runLevels(SLConnector.java:120) ~[AutoPilotServer.jar:12.2.1.1] at com.svg.planning.process.stocklevel.SLConnector.doProcess(SLConnector.java:80) ~[AutoPilotServer.jar:12.2.1.1] at com.svg.core.process.ThreadableConnector.doProcessSubTask(ThreadableConnector.java:84) ~[AutoPilotServer.jar:12.2.1.1] at com.svg.core.process.ThreadableConnector.process(ThreadableConnector.java:26) ~[AutoPilotServer.jar:12.2.1.1] at com.svg.core.process.BatchConnectorImpl.doRun(BatchConnectorImpl.java:122) ~[AutoPilotServer.jar:12.2.1.1] at com.svg.core.process.BatchConnectorImpl.lambda$run$0(BatchConnectorImpl.java:92) ~[AutoPilotServer.jar:12.2.1.1] at com.svg.core.database.TransactionUtil.lambda$withNone$1(TransactionUtil.java:106) ~[AutoPilotServer.jar:12.2.1.1] at com.svg.core.database.TransactionUtil.execute(TransactionUtil.java:56) ~[AutoPilotServer.jar:12.2.1.1] at com.svg.core.database.TransactionUtil.withNone(TransactionUtil.java:105) ~[AutoPilotServer.jar:12.2.1.1] at com.svg.core.process.BatchConnectorImpl.run(BatchConnectorImpl.java:92) ~[AutoPilotServer.jar:12.2.1.1] at com.svg.core.task.SubTask.runConnector(SubTask.java:104) ~[AutoPilotServer.jar:12.2.1.1] at com.svg.core.task.AbstractTask.run(AbstractTask.java:221) ~[AutoPilotServer.jar:12.2.1.1] at com.svg.core.task.SubTask.run(SubTask.java:86) ~[AutoPilotServer.jar:12.2.1.1] at sun.reflect.GeneratedMethodAccessor133.invoke(Unknown Source) ~[?:?] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_371] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_371] at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343) ~[spring-aop-5.0.19.RELEASE.jar:5.0.19.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:197) ~[spring-aop-5.0.19.RELEASE.jar:5.0.19.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.0.19.RELEASE.jar:5.0.19.RELEASE] at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:56) ~[spring-aop-5.0.19.RELEASE.jar:5.0.19.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:174) ~[spring-aop-5.0.19.RELEASE.jar:5.0.19.RELEASE] at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:295) [spring-tx-5.0.19.RELEASE.jar:5.0.19.RELEASE] at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98) [spring-tx-5.0.19.RELEASE.jar:5.0.19.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185) [spring-aop-5.0.19.RELEASE.jar:5.0.19.RELEASE] at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92) [spring-aop-5.0.19.RELEASE.jar:5.0.19.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185) [spring-aop-5.0.19.RELEASE.jar:5.0.19.RELEASE] at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212) [spring-aop-5.0.19.RELEASE.jar:5.0.19.RELEASE] at com.sun.proxy.$Proxy1271.run(Unknown Source) [?:?] at com.svg.core.service.impl.TaskServiceImpl$1.run(TaskServiceImpl.java:586) [AutoPilotServer.jar:12.2.1.1] at java.lang.Thread.run(Thread.java:750) [?:1.8.0_371] at com.svg.core.util.ThreadUtil$1.run(ThreadUtil.java:43) [AutoPilotServer.jar:12.2.1.1] Caused by: java.sql.BatchUpdateException: Arithmetic overflow error converting float to data type numeric. at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeBatch(SQLServerPreparedStatement.java:2085) ~[mssql-jdbc-9.2.1.jre8.jar:?] at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source) ~[?:?] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_371] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_371] at org.springframework.util.ReflectionUtils.invokeJdbcMethod(ReflectionUtils.java:322) ~[spring-core-5.0.19.RELEASE.jar:5.0.19.RELEASE] at com.svg.core.database.support.ProxyHandler$1.invoke(ProxyHandler.java:29) ~[AutoPilotServer.jar:12.2.1.1] at com.svg.core.database.support.ProxyHandler.invoke(ProxyHandler.java:53) ~[AutoPilotServer.jar:12.2.1.1] at com.svg.core.database.support.StatementHandler.invoke(StatementHandler.java:90) ~[AutoPilotServer.jar:12.2.1.1] at com.svg.core.database.support.PreparedStatementHandler.invoke(PreparedStatementHandler.java:63) ~[AutoPilotServer.jar:12.2.1.1] at com.sun.proxy.$Proxy89.executeBatch(Unknown Source) ~[?:?] at com.svg.core.database.BatchUpdate.update(BatchUpdate.java:155) ~[AutoPilotServer.jar:12.2.1.1] ... 39 more
- 如果未使用SQL Loader ,则 AutoPilot.log 包含不同的错误消息,如下所示:
ERROR com.svg.core.util.EventLog - Task Stock Level Generation failed with message: java.sql.BatchUpdateException: ORA-01438: value larger than specified precision allowed for this column java.sql.BatchUpdateException: ORA-01438: value larger than specified precision allowed for this column at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:12296) at oracle.jdbc.driver.OracleStatementWrapper.executeBatch(OracleStatementWrapper.java:246) at sun.reflect.GeneratedMethodAccessor233.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498)
这是文章 259113 的 PDF 版本,可能已过期。最新版本 CS259113