springframework.jdbc.UncategorizedSQLException :Invalid type de colonne-

Salut suis en train de faire un QueryForInt à l'aide de printemps jbdc.La requête retourne un simple comptage.Lors de l'exécution j'obtiens springframework.jdbc.UncategorizedSQLException:java.sql.SQLException: Invalid type de colonne.
Je n'ai trouver des postes similaires et essayé les suggestions, mais je suis toujours bloqué:(...
Toute aide est appréciée.

MapSqlParameterSource params = new MapSqlParameterSource();
    params.addValue(DAOConstants.PROD_ID, custVo.getProdId(),OracleTypes.NUMBER);
    params.addValue(DAOConstants.REQ_IND,  DAOConstants.FLAG_Y,OracleTypes.VARCHAR);

La requête:

  select count(1) from prod where prod_id = :PROD_ID and req_ind =:REQ_IND

Définition de la Table

   Name              Null     Type         
   ----------------- -------- ------------ 
   PROD_ID           NOT NULL NUMBER(5)          
   REQ_IND                    VARCHAR2(10) 

Les Journaux..

  Caused by: org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; 
uncategorized SQLException for SQL [select count(1) from prod where prod_id = :PROD_ID and req_ind = :REQ_IND ]; SQL state [99999]; error code [17004]; Invalid column type; nested exception is java.sql.SQLException: Invalid column type
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:602)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:636)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:665)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:673)
at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:728)
at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:744)
at org.springframework.jdbc.core.JdbcTemplate.queryForInt(JdbcTemplate.java:775)
... 45 more
Caused by: java.sql.SQLException: Invalid column type
at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)
at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:133)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:199)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:263)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:271)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:445)
at oracle.jdbc.driver.OraclePreparedStatement.setObjectCritical(OraclePreparedStatement.java:7937)
at oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedStatement.java:7517)
at oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedStatement.java:8174)
at oracle.jdbc.driver.OraclePreparedStatement.setObject(OraclePreparedStatement.java:8155)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.setObject(OraclePreparedStatementWrapper.java:230)
at org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.setObject(WrappedPreparedStatement.java:724)
at org.springframework.jdbc.core.StatementCreatorUtils.setValue(StatementCreatorUtils.java:351)
at org.springframework.jdbc.core.StatementCreatorUtils.setParameterValueInternal(StatementCreatorUtils.java:216)
at org.springframework.jdbc.core.StatementCreatorUtils.setParameterValue(StatementCreatorUtils.java:144)
at org.springframework.jdbc.core.ArgPreparedStatementSetter.doSetValue(ArgPreparedStatementSetter.java:65)
at org.springframework.jdbc.core.ArgPreparedStatementSetter.setValues(ArgPreparedStatementSetter.java:46)
at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:641)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:586)
... 56 more
  • Quels sont les types d'arguments que vous mettez en MapSqlParameterSource?
  • merci pour la réponse, j'ai testé avec un argument à un moment et a constaté que l'exception se produit pour l'argument ":PROD_ID". Dans MapSqlParameterSource je suis insertion de type int pour :PROD_ID..cudnt figure la cause.
  • Peut-être que l'int est trop grand pour la base de données à manipuler. J'ai vu qu'il est de type NUMBER(5), ce qui signifie qu'il ne peut contenir que 5 chiffres
  • Le problème est que j'ai oublié d'utiliser namedjdbctemplate et utilisé simplejdbc à la place.Il est résolu.
  • C'est bon à entendre!
  • Merci!! Acclamations...

InformationsquelleAutor Ravi | 2014-04-16