spring - Parameter instance recId is invalid for the requested conversion. ERRORCODE=-4461 -


i using spring jdbcnamedtemplate insert data in database. other operations (such delete) working fine, while insert getting -4461 error db2.

i went these pages: http://www-01.ibm.com/support/docview.wss?uid=swg21622381

invalid data conversion: parameter instance 50.0/100 invalid requested conversion. errorcode=-4461, sqlstate=42815

but no help. below snippet of code.

@override public void insert(flight fw) {     string sql = "insert flight (flt,leg,org,dst,booked) values  (:flt,:leg,:org,:dst,:booked)";   mapsqlparametersource namedparameters = new mapsqlparametersource(); namedparameters.addvalue("flt", fw.getflightnumber()); namedparameters.addvalue("leg", fw.getflightleg()); namedparameters.addvalue("org", fw.getorg()); namedparameters.addvalue("dst", fw.getdst()); namedparameters.addvalue("booked", fw.getbooked()); getnamedparameterjdbctemplate().update(sql, namedparameters); 

}

also here flight table schema db2

create table flight (     flt varchar(4) not null,     leg varchar(1) not null,     org varchar(3),     dst varchar(3),     booked decimal(3),     rec_id int not null generated identity(start 1 increment 1),     constraint pk_flight primary key (flt, leg) ); create unique index uq268_flight on flight(rec_id); 

and error getting

caused by: com.ibm.db2.jcc.am.sqlsyntaxerrorexception: [jcc][1091][10404][4.13.80] invalid data conversion: parameter instance rec_id invalid requested conversion. errorcode=-4461, sqlstate=42815     @ com.ibm.db2.jcc.am.id.a(id.java:677)     @ com.ibm.db2.jcc.am.id.a(id.java:60)     @ com.ibm.db2.jcc.am.id.a(id.java:103)     @ com.ibm.db2.jcc.am.kc.a(kc.java:774)     @ com.ibm.db2.jcc.am.kc.a(kc.java:689)     @ com.ibm.db2.jcc.am.go.a(go.java:1583)     @ com.ibm.db2.jcc.am.go.setstring(go.java:1538)     @ org.jboss.jca.adapters.jdbc.wrappedpreparedstatement.setstring(wrappedpreparedstatement.java:637)     @ org.springframework.jdbc.core.statementcreatorutils.setvalue(statementcreatorutils.java:421) [spring-jdbc-4.2.5.release.jar:4.2.5.release]     @ org.springframework.jdbc.core.statementcreatorutils.setparametervalueinternal(statementcreatorutils.java:235) [spring-jdbc-4.2.5.release.jar:4.2.5.release]     @ org.springframework.jdbc.core.statementcreatorutils.setparametervalue(statementcreatorutils.java:150) [spring-jdbc-4.2.5.release.jar:4.2.5.release]     @ org.springframework.jdbc.core.preparedstatementcreatorfactory$preparedstatementcreatorimpl.setvalues(preparedstatementcreatorfactory.java:292) [spring-jdbc-4.2.5.release.jar:4.2.5.release]     @ org.springframework.jdbc.core.preparedstatementcreatorfactory$preparedstatementcreatorimpl.createpreparedstatement(preparedstatementcreatorfactory.java:244) [spring-jdbc-4.2.5.release.jar:4.2.5.release]     @ org.springframework.jdbc.core.jdbctemplate.execute(jdbctemplate.java:623) [spring-jdbc-4.2.5.release.jar:4.2.5.release]     ... 200 more 

you can try in code

namedparameters.addvalue("flt", fw.getflightnumber(),types.varchar); namedparameters.addvalue("leg", fw.getflightleg(),types.varchar); namedparameters.addvalue("org", fw.getorg(),types.varchar); namedparameters.addvalue("dst", fw.getdst(),types.varchar); namedparameters.addvalue("booked", fw.getbooked(),types.double) 

this run correctly,

preparedstatement ps = connection.preparestatement(             "insert flight (flt,leg,org,dst,booked) values  (?,?,?,?,?)");             ps.setstring(1,"b");             ps.setstring(2 ,"b");             ps.setstring(3 ,"b");             ps.setstring(4 ,"b");             ps.setdouble(5 ,1);             ps.executeupdate();             ps.close();   user@host:/db2inst1:>db2 "select * flight"  flt  leg org dst booked rec_id      ---- --- --- --- ------ -----------              1.           1 b    b   b   b       1.           2    2 record(s) selected. 

Comments

Popular posts from this blog

jOOQ update returning clause with Oracle -

java - Warning equals/hashCode on @Data annotation lombok with inheritance -

java - BasicPathUsageException: Cannot join to attribute of basic type -