JDBC call to return to the stored procedure result set

作者在 2008-10-08 18:57:04 发布以下内容
JDBC调用返回结果集的存储过程:
开发中我们有时候需要用到用JDBC直接调用一个返回结果集的存储过程,这个问题并不常见,但是却不是太好处理,因为我们一般对存储过程的调用,通常是为 了调用一个批量处理的单元结构,并不期望其返回给我们什么值。下面使用一个小示例演示一下如何调用返回结果集的存储过程:
public void testProcedureResultSet() {
        try {
            DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
            Connection conn = DriverManager.getConnection(
                    "jdbc:oracle:thin:@192.168.0.254:1521:oracle9i", "system",
                    "oracle9i");
            CallableStatement stmt = conn.prepareCall("BEGIN GetRS(?); END;");
            stmt.registerOutParameter(1, oracle.jdbc.driver.OracleTypes.CURSOR); // 传出游标引用
            // stmt.execute();
            ResultSet rs = ((OracleCallableStatement) stmt).getCursor(1);
            while (rs.next()) {
                System.out.println(rs.getString("COUNTRY") + ":"
                        + rs.getString("PNO"));
            }
            rs.close();
            rs = null;
            stmt.close();
            stmt = null;
            conn.close();
            conn = null;
        } catch (SQLException e) {
            System.out.println(e.getLocalizedMessage());
        }
    }
java code | 阅读 4203 次
文章评论,共0条
游客请输入验证码
浏览581580次