gpt4 book ai didi

java - ORA-00920 : | unabale to set INTERVAL via ibatis

转载 作者:行者123 更新时间:2023-12-01 09:54:27 24 4
gpt4 key购买 nike

好吧,经过大量研究后我仍然找不到答案

下面是我尝试通过 ibatis 执行的 SQL 查询

<select id="selectSQL" parameterClass="String" resultMap="get-resultMap">   
SELECT * FROM MY_TABLE WHERE SYSDATE - INTERVAL #value# DAY > LAST_UPD_DTIM
</select>

这会引发错误

--- Cause: java.sql.SQLSyntaxErrorException: ORA-00920: invalid relational operator

但是当我对间隔值进行硬编码时,它工作得很好

SELECT * FROM MY_TABLE WHERE SYSDATE - INTERVAL '90'  DAY > LAST_UPD_DTIM 

这里出了什么问题?

最佳答案

好吧,终于我找到了问题所在。这里的问题是表达式

INTERVAL -'90' DAY

是一个文字,所以我们不能用变量(参数)替换它的一部分

为了解决这个问题,我使用了函数 NUMTODSINTERVAL

<select id="selectSQL" parameterClass="String" resultMap="get-resultMap">   
SELECT * FROM MY_TABLE WHERE SYSDATE - NUMTODSINTERVAL(#value#, 'DAY') > LAST_UPD_DTIM
</select>

关于java - ORA-00920 : | unabale to set INTERVAL via ibatis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37354535/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com