JDBCTemplate在执行存储的PROC时抛出隐式转换错误

时间:2017-09-10 16:36:14

标签: sql sybase spring-jdbc jdbctemplate

我正在尝试执行如下的存储PROC:

String test = "exec insertProc @id=?,@value=?";
jdbcTemplate.update(test,new Object[]{object.getID(),object.getValue()});

表格结构:

TestTable :
ID varchar(20)
VALUE decimal(6)

抛出的错误如下所示:

org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [exec insertProc @id=?,@value=?]; nested exception is com.sybase.jdbc4.jdbc.SybaseException: Implicit conversion from datatype 'VARCHAR' to 'DECIMAL' is not allowed. Use the CONVERT function to run this query.

1 个答案:

答案 0 :(得分:0)

检查你的object.getValue输出。似乎它返回一个字符串而不是float,即varchar而不是decimal。你能找到一个失败的样本数据集吗?