首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

iBatis 调用 SQL Server 2005 存储过程报错解决思路

2012-03-06 
iBatis 调用 SQL Server 2005 存储过程报错使用iBatis2 调用SQL Server 2005 存储过程,存储过程参数为 dec

iBatis 调用 SQL Server 2005 存储过程报错
使用iBatis2 调用SQL Server 2005 存储过程,存储过程参数为 decimal(14,2)类型
SQL代码

SQL code
@number decimal(14,2), -- 数量@price decimal(14,2), -- 单价@amount decimal(14,2), -- 总金额@discount decimal(14,2), -- 总折扣金额

SQL MAP中配置如下
XML code
                <parameter property="number" jdbcType="DECIMAL"            javaType="java.math.BigDecimal" mode="IN" />        <parameter property="price" jdbcType="DECIMAL"            javaType="java.math.BigDecimal" mode="IN" />        <parameter property="amount" jdbcType="DECIMAL"            javaType="java.math.BigDecimal" mode="IN" />        <parameter property="discount" jdbcType="DECIMAL"            javaType="java.math.BigDecimal" mode="IN" />

运行时报错如下
Java code
--- The error occurred while applying a parameter map.  --- Check the OrderOfPos.proc_billdetail_parameter.  --- Check the statement (update procedure failed).  --- Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 从数据类型 nvarchar 转换为 decimal 时出错。    at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:185)    at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForObject(GeneralStatement.java:104)    at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:566)    at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:541)    at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForObject(SqlMapSessionImpl.java:106)    at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForObject(SqlMapClientImpl.java:83)

那位大侠遇到过,指点指点小弟。。

[解决办法]
从数据类型 nvarchar 转换为 decimal 时出错 ---检查下你传递参数是否是浮点型啊

热点排行