oracle的plsql
create or replace package chapter_13 as
type rs is ref cursor ;
procedure founder(ofields out rs);
end;
create or replace package body chapter_13 as
procedure founder(ofields out rs) is
begin
open ofields for
select * from person;
end founder;
end;
java代码
package jdbc;
import java.io.*;
import java.sql.*;
import java.text.*;
import oracle.jdbc.oracletypes;
public class teststoredprocedures {
connection conn;
public teststoredprocedures() {
try {
drivermanager.registerdriver(new oracle.jdbc.driver.oracledriver());
conn = drivermanager.getconnection(
"jdbc:oracle:thin:@localhost:1521:orcl", "jola", "jola");
} catch (sqlexception e) {
system.err.println(e.getmessage());
e.printstacktrace();
}
}
public static void main(string[] args) throws exception {
new teststoredprocedures().process();
}
public void process() throws sqlexception {
long start = 0;
long end = 0;
callablestatement cstmt = null;
try {
start = system.currenttimemillis();
// *** sql92 escape syntax ***
cstmt = conn.preparecall(
"{call chapter_13.founder(?)}");
cstmt.registeroutparameter(1, oracletypes.cursor);
resultset rs = null;
cstmt.execute();
rs = (resultset)cstmt.getobject(1);
while (rs.next()) {
system.out.println(rs.getstring("name"));
}
rs.close();
end = system.currenttimemillis();
system.out.println("average elapsed time = " +
(end - start) / 8 + " milliseconds");
} catch (sqlexception e) {
system.err.println("sql error: " + e.getmessage());
} finally {
if (cstmt != null) {
try {
cstmt.close();
} catch (sqlexception ignore) {}
}
}
}
protected void finalize() throws throwable {
if (conn != null) {
try {
conn.close();
} catch (sqlexception ignore) {}
}
super.finalize();
}
}
新闻热点
疑难解答