17,086
社区成员
发帖
与我相关
我的任务
分享
CREATE OR REPLACE Package Package1
as
Type AccountList_Cursor is ref cursor;
Procedure Proc1(yb out AccountList_Cursor);
end Package1;
declare
ybb Package1.AccountList_Cursor;
rowobj Account%rowtype;
begin
Package1.Proc1(ybb);
open ybb;
for rowobj in ybb loop
dbms_output.put_line(rowobj.account);
end loop;
end;
String url="jdbc:oracle:thin:@127.0.0.1:1521:orcl";
String user="scott";
String pwd="123";
Connection conn=null;
CallableStatement stmt=null;
ResultSet rs=null;
try{
conn= DriverManager.getConnection(url, user, pwd);
stmt=conn.prepareCall("{call Package1.Proc1(?)}");
stmt.registerOutParameter(1,OracleTypes.CURSOR);
stmt.execute();
rs=(ResultSet) stmt.getObject(1);
while(rs.next()){
System.out.println(rs.getString(1));
}
}catch(Exception ex){
ex.printStackTrace();
}finally{
if(rs!=null){
try{
rs.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
if(stmt!=null){
try{
stmt.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
if(conn!=null){
try{
conn.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
}