您的位置:首页 > 数据库 > Oracle

java调用oracle返回结果集的存储过程

2009-03-27 10:05 435 查看
oracle中procedure是不能有返回值的,要想返回值,就得有输出参数,同样要想返回记录集,可以把游标类型作为输出参数。有一个例子:
import java.sql.*;
import oracle.jdbc.driver.*;

...........................
try {
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Connection conn = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:orcl", "system", "password");
CallableStatement st = conn.prepareCall(
"{call getemps(?)}");
st.registerOutParameter(1,OracleTypes.CURSOR);
st.execute();
ResultSet r = (ResultSet) st.getObject(1);

while (r.next()) {
//todo
}
}
catch (SQLException ex) {
................
}

create or replace package types
as
type cursorType is ref cursor;
end;
/

create or replace procedure getemps( p_cursor in out types.cursorType )
as
begin
open p_cursor for select ename, empno from emp order by ename;
end;
/
具体参数你自己修改一下应该可以运行
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: