oracle 的系统时间interval操作,ibatis

本文探讨了在SQL语句中使用Interval时遇到的问题,并提供了解决方案,具体实例为在IBatis框架下如何正确处理带有Interval参数的SQL语句。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

insert into T_TRANSCORE_TRANS_EXPIRE ( TRANS_ID, EXPIRE_DATE ) values ( '000300',INTERVAL '1' MINUTE) .
这里有一个不好解决的问题,interval后面的 1, 的引号直接加非常困难,
调试过程中常报错:ORA-00917,缺少逗号,因为,ibatis处理后进来的是不带单引号的
需要用另外一种方式实现

<insert id="insertExpireInfo" parameterType="map">
insert into T_TRANSCORE_TRANS_EXPIRED
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="transId != null">TRANS_ID,EXPIRED_TIME</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="transId != null">#{transId},</if>
<if test="minNum != null">SYSDATE + NUMTODSINTERVAL(#{minNum},'MINUTE')
</if>
</trim>
</insert>
==> Preparing: UPDATE MES_ALARMINFO_NEW SET ALARMTIMEKEY=?, ISSUETYPE=?, FACTORYNAME=?, ALARMTYPE=?, ALARMID=?, ALARMLEVEL=?, MACHINENAME=?, LOTNAME=?, PROCESSOPERATIONNAME=?, PROCESSFLOWNAME=?, PRODUCTSPECNAME=?, ALARMCOMMENT=?, REASONCODETYPE=?, REASONCODE=?, SOLVEFLAG=?, SOLVE_USER=?, SOLVE_REASON=?, START_TIME=?, END_TIME=?, SENDRULE=?, SENDINFOTIME=?, CREATE_TIME=?, EVT_USER=?, MACHINENAMETYPE=?, QTY=?, ITEM_INTERVAL=?, SENDTIME_1=?, ALARMCOMMENT_1=?, SENDTIME_2H=?, SOLUTION_2H=?, ALARMCOMMENT_2H=?, CHECKFLAG_2H=?, CHECKFLAG_24H=?, CHECKFLAG_48H=?, CHECKFLAG_5D=? WHERE (ALARMTIMEKEY = ?) ==> Parameters: 1(String), 1(String), 1(String), 1(String), 1(String), 1(String), 1(String), 1(String), 1(String), 1(String), 1(String), 1(String), 1(String), 1(String), Y(String), 1(String), 1(String), 1(String), 1(String), 1(String), 2025-03-10 16:00:04(String), 2025-03-11 10:47:57(String), 1(String), 1(String), 1(String), 1(String), 1(String), 1(String), 1(String), 1(String), 1(String), N(String), N(String), N(String), N(String), 1(String) Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@51bad420] 2025-03-11 10:48:11.675 ERROR 4312 --- [nio-8011-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.dao.DataIntegrityViolationException: ### Error updating database. Cause: java.sql.SQLDataException: ORA-01861: 文字与格式字符串不匹配 ### The error may exist in com/vis/kanpan/mapper/MesAlarmInfoMapper.java (best guess) ### The error may involve com.vis.kanpan.mapper.MesAlarmInfoMapper.update-Inline ### The error occurred while setting parameters
03-12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值