数据库报错: SQLCODE: -418, SQLSTATE: 42610, SQLERRMC: null

我在用org.springframework.jdbc.core.JdbcTemplate执行这样一句sql时报错了:

 INSERT INTO customerbranch

( id , OPTIMISTIC , frp_id , paymentchannel , customer_id ,bank_id ,updatetime)

 SELECT NEXT VALUE FOR customerbranch_ID_SEQUENCE ,

 0, 1005, ‘NET‘ , ?, bankid , CURRENT_TIMESTAMP

 FROM ( SELECT DISTINCT f.bank_Id AS bankid

 from frpbusiness fb, frp f

 where f.ID = fb.id and fb.BUSINESS in (‘DEBIT‘, ‘CREDIT‘, ‘B2B‘)

 )

错误信息主要是这个:

com.ibm.db2.jcc.c.SqlException: DB2 SQL error: SQLCODE: -418, SQLSTATE: 42610, SQLERRMC: null

但是奇怪的是,我在DBeaver中,将?替换为参数时,可以正常执行。

百度了很久,找到这样一篇问答:http://www.itpub.net/thread-1249543-1-1.html

其中提到了一句:“select list中不能有‘?’吧”

然后我将sql中的?替换为实际参数,再在代码中执行一遍,果然ok了。

 

select ? from ……的写法,是我以前使用mybatis时惯用的写法。但是JdbcTemplate中不能这样写。

 


本文出自 “编程的摩羯男” 博客,请务必保留此出处http://winters1224.blog.51cto.com/3021203/1570401

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。