数据库报错: 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中不能这样写。

时间: 2024-08-29 14:56:36

数据库报错: SQLCODE: -418, SQLSTATE: 42610, SQLERRMC: null的相关文章

DB2 SQL Error: SQLCODE=-803, SQLSTATE=23505, SQLERRMC=2 (转载)

http://blog.csdn.net/xiyuan1999/article/details/5706230 DB2 SQL Error: SQLCODE=-803, SQLSTATE=23505, SQLERRMC=2 . 1.查了下,大概意思是违反了唯一性约束啊! 2.不过,我db2 describe table XX后发现这个表只有ID是不能为空的啊! 3.最后,直接写了条SQL在命令行执行,同样的错和代码 最后,我查了下表的索引,发现建了个组合索引,才恍然大悟. 原来,DBA昨天建了唯

oracle 11g 手动删除表空间文件导致数据库报错处理方法

简单说下原因:当时图方便没进数据库,直接在datafile目录下删除了表空间对应的数据文件 导致后来数据库报错,并且不能删除表空间 错误如下:ORA-01116:error in opening database ****ORA-01110:data file 54:'/home3/datafile/arrange/NewArrange.dbf'ORA-27041:unable to open fileLinux Error:2: No Such file or directoryAdditio

MySql 插入数据库报错 Incorrect string value: '\xF0\xA0\x86\xA2'

今天从nginx日志分析搜索关键字,然后把关键字插入到Mysql数据库里,出现如下错误 SQL state [HY000]; error code [1366]; Incorrect string value: '\xF0\xA0\x86\xA2' for column 'XXXX' at row 38; nested exception is java.sql.SQLException: Incorrect string value: '\xF0\xA0\x86\xA2' for column

修改mysql存储引擎备份数据库报错及解决方案

备份数据库报错 原因:由于监控服务器最近cpu负载比较高.(cpu4核心,负载2.7左右)感觉很奇怪,因为别的服务器mysql占用的资源并不多,因此我首先优化了数据库的配置文件.cpu稍微下降了一点,但是没有特别明显的变化. 于是,从mysql的存储引擎和日志考虑,结果发现默认用的引擎是myisam.好吧.换成innodb,(由于事先我没备份,就在配置文件修改了引擎,因为日志除了二进制其他并没有开启.所以没动它.重启数据库. ok 早就听说这两个引擎,区别,看来性能差别真大啊! 好吧.备份数据库

Emoji表情符号录入MySQL数据库报错的解决方案

前言:手机app应用评论的时候,恢复表情符号,提示失败.?1,查看tomcat后台日志,核心报错信息如下:  Caused by: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x97\xF0\x9F...' for column 'CONTENT' at row 1at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)at com.mysql.

mysql 保存emoji时报,数据库报错:Caused by: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x82\xF0\x9F...' for column 'review' at row 1

错误原因:我们可以看到错误提示中的字符0xF0 0x9F 0x98 0x84 ,这对应UTF-8编码格式中的4字节编码(UTF-8编码规范).正常的汉字一般不会超过3个字节,为什么为出现4个字节呢?实际上是它对应的是智能手机输入法中的表情.那为什么会报错呢?因为mysql中的utf-8并不是真正意义上的utf-8,它只能存储1~3个字节长度的utf-8编码,如果想存储4个字节的必须用utf8mb4类型.不而要使用utf8mb4类型,首先要保证Mysql版本要不低于 MySQL 5.5.3. 常用

远程登录oracle 12.2数据库报错ORA-28040解决办法

今天新安装的oracle 12.2.0.1数据库,通过本地sqlplus远程登录12c数据库报错ora-28040,如下: ORA-28040: No matching authentication protocol 解决办法(亲测可行): 进入到$ORACLE_HOME/network/admin下,编辑sqlnet.ora文件(如果不存在,则创建一个,或者去samples目录下复制一份),在末尾添加下面一行,不需要重新启动数据库及监听,再次通过本地sqlplus访问远程12c数据库,登录成功

dbstart和dbshut启动、关闭数据库报错ORACLE_HOME_LISTNER is not SET解决办法

dbstart启动数据库报错,如下: [[email protected] ~]$ dbstartORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net ListenerUsage: /u01/app/oracle/product/11.2.0/dbhome_1/bin/dbstart ORACLE_HOME dbshut关闭数据库报错,如下: [[email protected] ~]$ dbshutORACLE_HOME

11gR2RAC环境DBCA创建数据库报错ORA-15055 ORA-15001

11gR2RAC环境DBCA创建数据库报错ORA-15055 ORA-15001 问题现象: 在11gR2 GridInfrastructure和Database软件安装完成之后,执行DBCA创建数据库到30%的时候报如下错误,点击OK后提示忽略并停止安装. 问题分析:      从上面的问题我们不难看出是因为无法访问ASM磁盘组导致,但是要解决该问题就得进入到ASM中去探个究竟,为什么刚装好的集群,建库就出现问题. 随即我们先通过grid用户登录到asm实例执行如下查询操作,我们发现磁盘组均为