GBase 8s
其他
问答

Spring boot+mybatis通过#{}传参,获取一串递增年,报底层错误

发表于2024-04-16 16:38:27207次浏览3个评论

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

【GBase版本】:GBase8sV8.8_TL_3.3.2_5_16ac2f

【操作系统】:win10

【CPU】:因特尔

【问题描述】*:

查询sql如下:

  SELECT
        t1.time AS batch
        from
        (
        select
        TO_CHAR(ADD_MONTHS(TO_DATE(#{batch},'yyyyMM'), 1-level ),'yyyyMM') as time
        from dual connect by level  <![CDATA[ <= ]]>  6
        ) t1

报错如下:

.....
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: SELECT         t1.time AS batch         from         (         select         TO_CHAR(ADD_MONTHS(TO_DATE(?,'yyyyMM'), 1-level ),'yyyyMM') as time         from dual connect by level    <=    6         ) t1  
### Cause: java.sql.SQLException: 由于内部错误,当前事务已被滚回。
; uncategorized SQLException; SQL state [IX000]; error code [-959]; 由于内部错误,当前事务已被滚回。; nested exception is java.sql.SQLException: 由于内部错误,当前事务已被滚回。, exception = {}
org.springframework.jdbc.UncategorizedSQLException: 
### Error querying database.  Cause: java.sql.SQLException: 由于内部错误,当前事务已被滚回。
### The error may exist in file 
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: SELECT         t1.time AS batch         from         (         select         TO_CHAR(ADD_MONTHS(TO_DATE(?,'yyyyMM'), 1-level ),'yyyyMM') as time         from dual connect by level    <=    6         ) t1 
### Cause: java.sql.SQLException: 由于内部错误,当前事务已被滚回。
; uncategorized SQLException; SQL state [IX000]; error code [-959]; 由于内部错误,当前事务已被滚回。; nested exception is java.sql.SQLException: 由于内部错误,当前事务已被滚回。
.....
Caused by: java.sql.SQLException: 由于内部错误,当前事务已被滚回。
	at com.gbasedbt.util.IfxErrMsg.getSQLException(IfxErrMsg.java:409) ~[gbasedbtjdbc_3.5.1.jar:3.5.1_1_d0c87a]
	at com.gbasedbt.jdbc.IfxSqli.a(IfxSqli.java:3576) ~[gbasedbtjdbc_3.5.1.jar:3.5.1_1_d0c87a]
	at com.gbasedbt.jdbc.IfxSqli.D(IfxSqli.java:3856) ~[gbasedbtjdbc_3.5.1.jar:3.5.1_1_d0c87a]
	at com.gbasedbt.jdbc.IfxSqli.dispatchMsg(IfxSqli.java:2746) ~[gbasedbtjdbc_3.5.1.jar:3.5.1_1_d0c87a]
	at com.gbasedbt.jdbc.IfxSqli.receiveMessage(IfxSqli.java:2671) ~[gbasedbtjdbc_3.5.1.jar:3.5.1_1_d0c87a]
	at com.gbasedbt.jdbc.IfxSqli.a(IfxSqli.java:1884) ~[gbasedbtjdbc_3.5.1.jar:3.5.1_1_d0c87a]
	at com.gbasedbt.jdbc.IfxSqli.executeExecute(IfxSqli.java:2599) ~[gbasedbtjdbc_3.5.1.jar:3.5.1_1_d0c87a]
......
Caused by: java.sql.SQLException: ISAM 错误:发生意外的内部错误
	at com.gbasedbt.util.IfxErrMsg.getSQLException(IfxErrMsg.java:409) ~[gbasedbtjdbc_3.5.1.jar:3.5.1_1_d0c87a]
	at com.gbasedbt.jdbc.IfxSqli.D(IfxSqli.java:3861) ~[gbasedbtjdbc_3.5.1.jar:3.5.1_1_d0c87a]
	... 163 common frames omitted

求大佬解决,急!

 

评论

登录后才可以发表评论
用户头像
liaosnet发表于 2年前
简化一下吧
TO_CHAR(TO_DATE(#{batch},'yyyyMM') + (1-level) units month,'yyyyMM') as time
from dual connect by level 6
GBase用户16033发表于 2年前
@liaosnet:跟简不简化没关系,通过验证,只能通过${}传参给上面语句
用户头像
路路路发表于 4个月前
解决了吗