为什么要用函数来返回游标呢?用存储过程来返回java是可以处理的。

解决方案 »

  1.   

    已经解决了。返回游标是别人做好的,我只好这么使用。调用方法公布一下,这是我原本的代码,几个括号中的代码可以不看,主要是把游标转换为ResultSet即可。这种用法我找了好久没找到,最后是一新加坡前辈告诉我的:        Connection conn = null;
            PreparedStatement pstmt = null;
            ResultSet rs = null;        try {
                conn = GlobalManager.get_gs_conn();
                conn.setAutoCommit(false);            pstmt = conn.prepareStatement("SELECT get_game_history (?,?)");
                pstmt.setInt(1, limit);
                pstmt.setInt(2, cameraid);
                rs = pstmt.executeQuery();            if (!rs.next ())
                {
                    printError ("Get Game History", "Not data returned");
                    return "0\n";
                }            ResultSet rs1 = (ResultSet)rs.getObject(1);   //就是这一条,关键的地方
                if (rs1 == null)
                {
                    printError ("Get Game History", "Converted result set is null");
                    return "0\n";
                }            while (rs1.next())
                {
                    if (result.length() != 0)
                        result += ",";
                    result += rs1.getInt("WinMask");
                    rounds++;
                }
                return ""+rounds+"\n"+result;
            }
            catch (SQLException e) {
                printExcept (e, "Get Game History", "SQL except");
                return "";
            }
            finally {
                GlobalManager.close(rs);
                GlobalManager.close(pstmt);
                GlobalManager.close(conn);
            }