■ 오라클 프로시저나 함수에서  Table을 return 하는 방법
1. 공용으로 사용할 커서 타입을 하나 생성한다.
2. 함수나 프로시저에서 1번에서 생성한 타입으로 return을 선언해 준다.

CREATE OR REPLACE PACKAGE types
AS
    TYPE ref_cursor IS REF CURSOR;
END;

CREATE OR REPLACE FUNCTION func_bbs_info RETURN types.ref_cursor AS
    c1 types.ref_cursor;
BEGIN
    OPEN c1 FOR select * from eip_bbs_info;
    RETURN c1;
END;

[java code]

       String sql = "{? = call func_bbs_info} ";
       ConnectionManager mgr = ConnectionManager.getInstance("eduipsi");
       Connection con = null;
       CallableStatement cstmt = null;
       ResultSet rs = null;
       try {
           con = mgr.getConnection(); 
           cstmt = con.prepareCall(sql);
           cstmt.registerOutParameter(1, oracle.jdbc.OracleTypes.CURSOR);
           cstmt.execute();
           rs = (ResultSet)cstmt.getObject(1);
           while (rs.next()) {
              // 처리부분.
           }
       } catch (SQLException e) {

public 패키지 하나 만들고, 여기에 공통 커서를 정의 후 커서타입으로 return 한다.