Caused by: java.sql.SQLException: ORA-01861: 文字与格式字符串不匹配

简介:

          项目中遇到这样一个问题:        

        Caused by:java.sql.SQLException: ORA-01861: 文字与格式字符串不匹配

atoracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)

atoracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)

atoracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)

atoracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)

atoracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:213)

atoracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:796)

atoracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1031)

atoracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:836)

atoracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1124)

atoracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3285)

atoracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3390)

atcom.ibatis.sqlmap.engine.execution.SqlExecutor.executeQuery(SqlExecutor.java:185)

atcom.ibatis.sqlmap.engine.mapping.statement.MappedStatement.sqlExecuteQuery(MappedStatement.java:221)

atcom.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryWithCallback(MappedStatement.java:189)

...43 more

这个问题的解决方案其实很简单,但是一开始过于着急,导致调试时间加长,这是在项目的导出功能中遇到的问题,当输入开始时间和结束时间进行高级搜索后需要导出,在导出时显示空白页,项目提示这样的问题,于是我直接从导出开始却没有想导出不成功是因为之前输入的开始时间和结束时间的格式不对,下面是改后的结果:
因为我们的ORM是通过MyBatis实现的,所以我们看下xml中的sql语句:
这个是改前的时间:


<!-- 	 <isNotEmpty prepend=" " property="start_time" >  AND T.COST_TIME  >= #start_time# </isNotEmpty> -->
<!--     <isNotEmpty prepend=" " property="end_time" >  AND T.COST_TIME <= #end_time# </isNotEmpty> -->
下面是改后的时间格式:

<isNotEmpty prepend=" " property="start_time" >  AND T.COST_TIME  <![CDATA[ >=]]> TO_DATE(#start_time#,'yyyy-mm-dd hh24:mi:ss') </isNotEmpty>
<isNotEmpty prepend=" " property="end_time" >  AND T.COST_TIME <![CDATA[ <=]]> TO_DATE(#end_time#,'yyyy-mm-dd hh24:mi:ss') </isNotEmpty>
      所以可以看出这个错误的原因是将string类型的时间和date类型的时间进行对比,所以就会出现文字与格式字符串不匹配的问题。



相关文章
|
2月前
|
安全 Java API
【Java字符串操作秘籍】StringBuffer与StringBuilder的终极对决!
【8月更文挑战第25天】在Java中处理字符串时,经常需要修改字符串,但由于`String`对象的不可变性,频繁修改会导致内存浪费和性能下降。为此,Java提供了`StringBuffer`和`StringBuilder`两个类来操作可变字符串序列。`StringBuffer`是线程安全的,适用于多线程环境,但性能略低;`StringBuilder`非线程安全,但在单线程环境中性能更优。两者基本用法相似,通过`append`等方法构建和修改字符串。
53 1
|
18天前
|
JSON 前端开发 Java
震惊!图文并茂——Java后端如何响应不同格式的数据给前端(带源码)
文章介绍了Java后端如何使用Spring Boot框架响应不同格式的数据给前端,包括返回静态页面、数据、HTML代码片段、JSON对象、设置状态码和响应的Header。
62 1
震惊!图文并茂——Java后端如何响应不同格式的数据给前端(带源码)
|
10天前
|
Java 数据库
案例一:去掉数据库某列中的所有英文,利用java正则表达式去做,核心:去掉字符串中的英文
这篇文章介绍了如何使用Java正则表达式从数据库某列中去除所有英文字符。
28 15
|
3天前
|
Java 数据安全/隐私保护
Java ffmpeg 实现视频加文字/图片水印功能
【10月更文挑战第22天】在 Java 中使用 FFmpeg 实现视频加文字或图片水印功能,需先安装 FFmpeg 并添加依赖(如 JavaCV)。通过构建 FFmpeg 命令行参数,使用 `drawtext` 滤镜添加文字水印,或使用 `overlay` 滤镜添加图片水印。示例代码展示了如何使用 JavaCV 实现文字水印。
|
13天前
|
Java
JAVA易错点详解(数据类型转换、字符串与运算符)
JAVA易错点详解(数据类型转换、字符串与运算符)
39 4
|
10天前
|
存储 算法 Java
java制作海报六:Graphics2D的RenderingHints方法参数详解,包括解决文字不清晰,抗锯齿问题
这篇文章是关于如何在Java中使用Graphics2D的RenderingHints方法来提高海报制作的图像质量和文字清晰度,包括抗锯齿和解决文字不清晰问题的技术详解。
17 0
java制作海报六:Graphics2D的RenderingHints方法参数详解,包括解决文字不清晰,抗锯齿问题
|
10天前
|
算法 搜索推荐 Java
java 后端 使用 Graphics2D 制作海报,画echarts图,带工具类,各种细节:如头像切割成圆形,文字换行算法(完美实验success),解决画上文字、图片后不清晰问题
这篇文章介绍了如何使用Java后端技术,结合Graphics2D和Echarts等工具,生成包含个性化信息和图表的海报,并提供了详细的代码实现和GitHub项目链接。
30 0
java 后端 使用 Graphics2D 制作海报,画echarts图,带工具类,各种细节:如头像切割成圆形,文字换行算法(完美实验success),解决画上文字、图片后不清晰问题
|
27天前
|
Java 数据库
java小工具util系列1:日期和字符串转换工具
java小工具util系列1:日期和字符串转换工具
44 3
|
27天前
|
SQL Java 索引
java小工具util系列2:字符串工具
java小工具util系列2:字符串工具
13 2
|
1月前
|
存储 移动开发 Java
java核心之字符串与编码
java核心之字符串与编码
16 2