ibatis调用oracle中的存储过程出现了无效列类型错误?
如标题所说,parameterMap元素也是配了的,存储过程在数据库的控制台上测试是没问题的。不明白原因,希望大家帮我找找错误:
sql statement文件:
<parameterMap class="java.util.Map" id="swapParameters">
<parameter property="a" mode="INOUT" jdbcType="int" javaType="java.lang.Integer"/>
<parameter property="b" mode="INOUT" jdbcType="int" javaType="java.lang.Integer"/>
</parameterMap>
<procedure id="swapProcedure" parameterMap="swapParameters">
{call swap(?, ?)}
</procedure>
代码:
Map map= new HashMap(2);
map.put("a", new Integer(1));
map.put("b", new Integer(5));
try {
sqlMap.startTransaction();
sqlMap.queryForObject("Orderr.swapProcedure", map); //出错
} catch (SQLException e) {
e.printStackTrace();
} finally {
sqlMap.endTransaction();
}
存储过程:
create or replace procedure swap(a in out integer, b in out integer) as
temp integer;
begin
temp := a;
a := b;
b := temp;
-- 测试用的,没错误,能显示
-- dbms_output.put_line(a || ' ' || b);
end;