插入日期列抛出java.sql.SQLException:列类型无效
我有一个带有number、varchar2和Date列的表。我正在尝试将数据插入此表,其中数字和日期(dd-MMM-yy)字段是从另一个表获取的 表结构:插入日期列抛出java.sql.SQLException:列类型无效,java,oracle,date,spring-integration,sqlexception,Java,Oracle,Date,Spring Integration,Sqlexception,我有一个带有number、varchar2和Date列的表。我正在尝试将数据插入此表,其中数字和日期(dd-MMM-yy)字段是从另一个表获取的 表结构: ID NOT NULL NUMBER(11) SOURCEID VARCHAR2(20) MESSAGE VARCHAR2(250) CODE VARCHAR2(20) LSTUPDT DATE Java Pojo: int id; String sourceId; String message; String co
ID NOT NULL NUMBER(11)
SOURCEID VARCHAR2(20)
MESSAGE VARCHAR2(250)
CODE VARCHAR2(20)
LSTUPDT DATE
Java Pojo:
int id;
String sourceId;
String message;
String code;
Date lastUpdDate;
在Sprint集成xml文件中有一个简单的insert语句
问题是日期字段。如果我删除了日期,记录将很好地插入。
我尝试在pojo中使用日期、时间戳和LocalDate,但没有任何效果。请给我一些建议
<integration:channel id="retrieveIdDetailsRequestChannel" />
<integration:channel id="retrieveIdDetailsReplyChannel" />
<integration:channel id="insertIdDetailsRequestChannel" />
<integration:gateway id="retrieveService" service-interface="com.test.RetrieveIdDetailService">
<integration:method name="retrieveIds"
request-channel="retrieveIdDetailsRequestChannel"
reply-channel="retrieveIdDetailsReplyChannel"
request-timeout="5000"
reply-timeout="5000"/>
<integration:method name="insertIdExternalStatus"
request-channel="insertIdDetailsRequestChannel"
request-timeout="5000"
reply-timeout="5000"/>
</integration:gateway>
<int-jdbc:outbound-gateway data-source="db"
update="insert into table_test values (:Id, :sourceId, :Message, :Code, :lstupdt)"
request-channel="insertIdDetailsRequestChannel"
reply-channel="nullChannel"
request-sql-parameter-source-factory="parameterSourceFactory"/>
<bean id="parameterSourceFactory" class="org.springframework.integration.jdbc.ExpressionEvaluatingSqlParameterSourceFactory">
<property name="parameterExpressions">
<map>
<entry key="Id" value="payload.getId()" />
<entry key="sourceId" value="payload.getSourceId()" />
<entry key="Message" value="payload.getMessage()" />
<entry key="Code" value="payload.getCode()" />
<entry key="lstupdt" value="payload.getLastUpdatedDate()" />
</map>
</property>
</bean>
</beans>
为什么不显示有关事项和配置的StackTrace?StackTrace对没有清晰地发布内容没有多大帮助。我已使事情看起来比以前更好。“插入到表_测试值(:Id,:sourceId,:Message,:Code,:lstupdt)”与您的表描述不匹配。感谢您花时间检查此问题。为了简化我的帖子,我减少了实际的表格细节。为什么不显示有关事项和配置的StackTrace?StackTrace对没有清晰发布内容没有多大帮助。我已使事情看起来比以前更好。“插入到表_测试值(:Id,:sourceId,:Message,:Code,:lstupdt)”与您的表描述不匹配。感谢您花时间检查此问题。我在这里减少了实际的表格细节,使我的文章更简单。
org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [insert into table_test values (?, ?, ?, ?)]; SQL state [99999]; error code [17004]; Invalid column type; nested exception is java.sql.SQLException: Invalid column type
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:84)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:649)
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:870)
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:894)
at org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.update(NamedParameterJdbcTemplate.java:287)
at org.springframework.integration.jdbc.JdbcMessageHandler.executeUpdateQuery(JdbcMessageHandler.java:220)
at org.springframework.integration.jdbc.JdbcOutboundGateway.handleRequestMessage(JdbcOutboundGateway.java:139)
at org.springframework.integration.handler.AbstractReplyProducingMessageHandler.handleMessageInternal(AbstractReplyProducingMessageHandler.java:109)
at org.springframework.integration.handler.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:127)
at org.springframework.integration.dispatcher.AbstractDispatcher.tryOptimizedDispatch(AbstractDispatcher.java:116)
at org.springframework.integration.dispatcher.UnicastingDispatcher.doDispatch(UnicastingDispatcher.java:148)
at org.springframework.integration.dispatcher.UnicastingDispatcher.dispatch(UnicastingDispatcher.java:121)
at org.springframework.integration.channel.AbstractSubscribableChannel.doSend(AbstractSubscribableChannel.java:77)
at org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:423)
at org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:115)
at org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:45)
at org.springframework.messaging.core.AbstractMessageSendingTemplate.send(AbstractMessageSendingTemplate.java:105)
at org.springframework.messaging.core.AbstractMessageSendingTemplate.convertAndSend(AbstractMessageSendingTemplate.java:143)
at org.springframework.messaging.core.AbstractMessageSendingTemplate.convertAndSend(AbstractMessageSendingTemplate.java:135)
at org.springframework.integration.gateway.MessagingGatewaySupport.send(MessagingGatewaySupport.java:375)
at org.springframework.integration.gateway.GatewayProxyFactoryBean.invokeGatewayMethod(GatewayProxyFactoryBean.java:477)
at org.springframework.integration.gateway.GatewayProxyFactoryBean.doInvoke(GatewayProxyFactoryBean.java:429)
at org.springframework.integration.gateway.GatewayProxyFactoryBean.invoke(GatewayProxyFactoryBean.java:420)
at org.springframework.integration.gateway.GatewayCompletableFutureProxyFactoryBean.invoke(GatewayCompletableFutureProxyFactoryBean.java:65)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)
at com.sun.proxy.$Proxy39.insertIdExternalStatus(Unknown Source)
at com.test.fis.mtr.Fima2Service.getFimaTrades(Fima2Service.java:79)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:65)
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.sql.SQLException: Invalid column type
at oracle.jdbc.driver.OraclePreparedStatement.setObjectCritical(OraclePreparedStatement.java:10495)
at oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedStatement.java:9974)
at oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedStatement.java:10799)
at oracle.jdbc.driver.OraclePreparedStatement.setObject(OraclePreparedStatement.java:10776)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.setObject(OraclePreparedStatementWrapper.java:241)
at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.setObject(NewProxyPreparedStatement.java:365)
at org.springframework.jdbc.core.StatementCreatorUtils.setValue(StatementCreatorUtils.java:454)
at org.springframework.jdbc.core.StatementCreatorUtils.setParameterValueInternal(StatementCreatorUtils.java:238)
at org.springframework.jdbc.core.StatementCreatorUtils.setParameterValue(StatementCreatorUtils.java:153)
at org.springframework.jdbc.core.PreparedStatementCreatorFactory$PreparedStatementCreatorImpl.setValues(PreparedStatementCreatorFactory.java:292)
at org.springframework.jdbc.core.PreparedStatementCreatorFactory$PreparedStatementCreatorImpl.createPreparedStatement(PreparedStatementCreatorFactory.java:244)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:627)
... 39 more