ORA-01858 :在要求输入数字处找到非数字字符
2017-04-27 10:20
246 查看
java链接oracle数据库的时候遇到了:ORA-01858 :在要求输入数字处找到非数字字符 这个错误,后续自己解决了,把原因和解决办法贴出来,大家看看
2017-04-27 08:52:37,284 ERROR [com.iss.amc.bat.fundNav.dao.FundNavDAO] [com.iss.amc.framework.core.dao.BaseDAO$4.doInConnection(BaseDAO.java:253)] - execute failedjava.sql.BatchUpdateException: ORA-01858: 在要求输入数字处找到非数字字符
at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:343)
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:10720)
at com.mchange.v2.sql.filter.FilterPreparedStatement.executeBatch(FilterPreparedStatement.java:260)
at com.iss.amc.framework.core.dao.BaseDAO$4.doInConnection(BaseDAO.java:243)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:289)
at com.iss.amc.framework.core.dao.BaseDAO.executeUpdateMutil(BaseDAO.java:224)
at com.iss.amc.bat.fundNav.dao.FundNavDAO.insertSynchLog(FundNavDAO.java:109)
at com.iss.amc.bat.fundNav.bo.impl.FundNavBOImpl.insertSynchLog(FundNavBOImpl.java:68)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at org.springframework.aop.framework.adapter.ThrowsAdviceInterceptor.invoke(ThrowsAdviceInterceptor.java:126)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.adapter.AfterReturningAdviceInterceptor.invoke(AfterReturningAdviceInterceptor.java:50)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:50)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at com.sun.proxy.$Proxy2.insertSynchLog(Unknown Source)
at com.iss.amc.bat.scanQuartz.action.scanQuartzAction.scanHuaxiaFildor(scanQuartzAction.java:367)
at sun.reflect.GeneratedMethodAccessor38.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:283)
at org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob.executeInternal(MethodInvokingJobDetailFactoryBean.java:272)
at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86)
at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:529)
下面是我出错的代码:
出错原因是:preparedstatement在执行的时候不能把红框内的串替换为sql中的问号,主要是to_date函数替换不了,解决办法是将to_date函数先放到sql语句中,然后替换后面的变量,就不报这个错误了。
修改后的代码:
相关文章推荐
- ORA-01858: 在要求输入数字处找到非数字字符 and ORA-01007: 变量不在选择列表中
- ORA-01858 :在要求输入数字处找到非数字字符
- ORA-01858: 在要求输入数字处找到非数字字符
- ORA-01858: 在要求输入数字处找到非数字字符
- java.sql.SQLException: ORA-01858: 在要求输入数字处找到非数字字符
- java.sql.SQLException: ORA-01858: 在要求输入数字处找到非数字字符
- ORA-01858:在要求输入数字处找到非数字字符
- ORA-10858:在要求输入数字处找到非数字字符
- oracle插入数据时提示要求输入数字处找到非数字字符
- 要求编写程序,读入5个字符串,按由小到大的顺序输出。 (2)功能要求 ①输入格式:输入为由空格分隔的5个非空字符串,每个字符串不包括空格、制表符、换行符等空白字符,长度小于80。
- 算法十二:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b
- 输入一个字符串,把其中的字符按逆序输出。如输入light,输出thgil。要求用string方法
- 写一函数,输入一个四位数字,要求输出这四个数字字符,但每两个数字间空格。如输入1990,应输出"1 9 9 0"。
- 【编程题目】在一个字符串中找到第一个只出现一次的字符。如输入 abaccdeff,则输出 b。
- 输入一串字符,要求数字从小到大,字母从a到z排序,输出字母和数字的排序结果。
- 输入一个字符串,内有数字和非数字字符,
- 从标准输入读入一个由字母构成的串(不大于30个字符)。从该串中取出3个不重复的字符,求所有的取法。取出的字符,要求按字母升序排列成一个串。不同的取法输出顺序可以不考虑。
- ORA-01480错误与&特殊字符的输入
- 实验9-2 //编程判断输入的一串字符是否为“回文”。所谓“回文”,是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是“回文”。要求使用指针变量判断字符串是否是回文。
- 文本框中禁止非数字字符输入比如手机号码、邮编