开发中咱们有时候须要用到用JDBC直接调用一个返回结果集的存储过程,这个问题并不常见,可是却不是太好处理,由于咱们通常对存储过程的调用,一般是为了调用一个批量处理的单元结构,并不指望其返回给咱们什么值。下面使用一个小示例演示一下如何调用返回结果集的存储过程:
public 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());
}
}
本文来自程式先锋(www.javabiz.cn)技术维客