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

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 时出错 ---检查下你传递参数是否是浮点型啊