在调用存储过程时 我给邦定了个游标类型的输出参数用来获得查询结果集
结果在程序中使用报错 类型长度大于最大值!
因为公司刚刚更新了oracle驱动 是什么10.2版本滴! 
以前用滴好好滴 大虾门 高手们帮帮忙啊!小弟在此先谢过了这是包头
create or replace package test_pkg
IS
  type test_cur_typ is ref cursor ;
  procedure test_cur_proc(v_cur in out test_cur_pkg.test_cur_typ);END test_pkg;
下面是包体
create or replace package body test_cur_pkg IS    procedure test_cur_proc( v_cur in out test_cur_pkg.test_cur_typ)
    IS
    begin
      open v_cur for select * from fw_module;
    END test_cur_proc;
    
end test_cur_pkg;
程序: /**
     * 执行存储过程,不支持有返回参数的存储过程,考虑到存储过程返回结果集时<br/>
     * 必须用到游标做为输出参数,在程序内部封装了个游标类型的变量,调用时不用
     * 另外再传输出参数了.
     * @param dataSourceCode
     *            数据源<br >
     * @param procName
     *            存储过程名称<br >
     * @param params
     *            输入参数参数列表<br >
     * @return 用List包装的查询结果.List里的元素是HashMap封装的查询结果集的每一行纪录<br >
     * @throws Exception
     */
    public List queryProc(String dataSourceCode, String procName, String[] params) throws Exception {
        Connection conn = getConnection(dataSourceCode);
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < params.length; i++) {
            sb.append("?,");
        }
        String strSql="";
        CallableStatement cste=null;
        if(params.length!=0){
        strSql = sb.toString().substring(0, sb.toString().length() - 1);
        strSql="{ call "+procName+"( " + strSql +  ")}";
         cste = conn.prepareCall(strSql);
        }else
        {
          cste = conn.prepareCall("{call "+procName+"(?)}"); 
        }
        int paramFalg=1;
        for (int i = 0; i < params.length; i++) {
            cste.setString(i+1, params[i]);
            paramFalg++;
        } 
        cste.registerOutParameter(paramFalg,oracle.jdbc.OracleTypes.CURSOR);
        cste.executeQuery();
        ResultSet set=(ResultSet)cste.getObject(paramFalg);
        List resultList = this.resultSetToList(set);
        set.close();
        cste.close();
        RdbConnectionManager.closeConnection(conn);
        return resultList;
    }
没有换驱动前是很好用的