日期:2014-05-19  浏览次数:20622 次

Mybatis调用oracle存储过程错误问题
在调用存储过程的时候,不知道下面这段代码到底是哪里错了,总是报in或out参数索引丢失,但是我看着好像哪里都没错,想让各位大神帮忙看下,这段代码中是哪里除了问题,谢谢。

oracle存储过程:

create or replace procedure pro_dept(dname in varchar2,cur_sys out sys_refcursor)
is
begin
     open cur_sys for select * from dept where dname like '%||dname||%';
end;


xml配置:

        <resultMap type="Dept" id="getDept">
<id column="deptno" property="deptno"/>
<result column="dname" property="dname"/>
<result column="loc" property="loc"/>
</resultMap>

<!-- 调用存储过程返回结果集 -->
<select id="callProcedure1" parameterType="java.util.Map">

<![CDATA[ 
          call getuserby(#{dname,mode=IN,jdbcType=VARCHAR}, 
                         #{depts,mode=OUT,jdbcType=CURSOR,javaType=java.sql.ResultSet,resultMap=getDept}) 
        ]]>

</select>


调用:

                Map<String, Object> param = new HashMap<String, Object>();
param.put("dname", "A");

procedureDao.callProcedure1(param);

List<Dept> depts = (ArrayList<Dept>)param.get("depts");

System.err.println(depts.size());


异常:

### Error querying database.  Cause: java.sql.SQLException: 索引中丢失  IN 或 OUT 参数:: 2
Mybatis

------解决方案--------------------
引用:
引用:procedureDao.callProcedure1
你这个方法里面是怎么弄的?

下面是接口和实现类
Java code?12345678910111213141516171819public interface IProcedureDao {         List<Dept> callProcedure1(Map<S……


我凌乱了.........

    
我的异常网推荐解决方案:oracle存储过程,http://www.aiyiweb.com/oracle-develop/177537.html