如何在查询中查找哪个字段出现错误:
com.abc.fast.common.db.exception.UncategorizedSQLException: CallableStatementCallback;SQL {调用p_proc_u(?,?,?),?,?)};ErrorCode: 257;SQLState: 42000;消息:不允许从数据类型'VARCHAR‘到’数值‘的隐式转换。使用转换函数运行此查询。(DataSource: 1,Type: SYBASE);嵌套异常是com.sybase.jdbc3.jdbc.SybSQLException:不允许从数据类型'VARCHAR‘到’数值‘的隐式转换。使用转换函数运行此查询。
发布于 2013-06-26 14:03:19
这表示数值被引号括起来,或者字符值缺少引号。
再次检查您的代码,以确保值正在正确地传递到数据库中。
发布于 2013-09-12 16:46:59
如果使用Spring的存储过程模板,请确保“declareParameter”的顺序与目标存储过程中指定的参数列表的顺序相同。
给定一个存储的proc,它看起来像:
CREATE PROCEDURE dbo.sp_ac_createStoredProc
(
@pFirst_name VARCHAR(100),
@pLast_name VARCHAR(100) = NULL,
@pAge NUMERIC(2,0) = NULL像这样声明你的参数
declareParameter(new SqlParameter(FIRST_NAME, Types.VARCHAR));
declareParameter(new SqlParameter(LAST_NAME, Types.VARCHAR));
declareParameter(new SqlParameter(AGE, Types.NUMERIC));一切都会好的。如下所示声明参数:
declareParameter(new SqlParameter(AGE, Types.NUMERIC));
declareParameter(new SqlParameter(FIRST_NAME, Types.VARCHAR));
declareParameter(new SqlParameter(LAST_NAME, Types.VARCHAR));好吧,基本上,就是不要。
发布于 2015-04-29 12:58:07
您可以看到它最终用于调用存储的proc的变量值。这可以通过将jdbctemplate记录器设置为调试模式来实现。例如,如果使用Spring,则可以将属性log4j.logger.org.springframework.jdbc.core设置为DEBUG。这可以在log4j.properties或logback.xml中完成。
https://stackoverflow.com/questions/17322183
复制相似问题