JDBC調用返回結果集的存儲過程

開發中我們有時候需要用到用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)技術維客
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章