1. 存储过程定义
create or replace procedure pro_fetchuser(ret out sys_refcursor)
as--cursor userInfo_cursor is select * from t_user;
--userInfo userInfo_cursor%rowtype;
begin
open ret for
select * from t_user;
end;
2.java调用遍历
Connection conn = session.connection();
CallableStatement pro = conn.prepareCall("{call pro_fetchuser(?)}");
pro.registerOutParameter(1, -10);
pro.executeQuery();
ResultSet rs = (ResultSet) pro.getObject(1);
// while (rs.next()) {
// System.out.println(rs.getString("USER_LOGIN"));
// }
ResultSetMetaData md = rs.getMetaData();
int count = md.getColumnCount();
List<String> columns = new ArrayList<String>();
for (int i=1; i<=count; i++)
{
columns.add(md.getColumnName(i));
System.out.println("列名: " + md.getColumnName(i));
}
while(rs.next())
{
for (String col:columns)
{
System.out.print(rs.getObject(col)+" ");
}
System.out.println();
}