Multiple ResultSet
Multiple ResultSet#
Altibase용 PSM(저장 프로시저 및 저장 함수)은 여러 개의 결과셋을 클라이언트에 반환할 수 있다. 이 절에서는 여러 개의 결과셋을 반환하는 PSM의 예제를 가지고, JDBC 애플리케이션에서 이러한 결과셋들을 다루는 방법을 코드 예제로 살펴본다.
다음은 여러 개의 결과셋을 반환하는 PSM 예제이다.
CREATE TYPESET my_type
AS
TYPE my_cur IS REF CURSOR;
END;
CREATE PROCEDURE p1 (p1 OUT MY_TYPE.MY_CUR, p2 out MY_TYPE.MY_CUR)
AS
BEGIN
OPEN p1 FOR 'SELECT * FROM t1';
OPEN p1 FOR 'SELECT * FROM t2';
END;
다음은 JDBC 애플리케이션에서 PSM 호출로 반환된 여러 개의 결과셋들을 다루는 코드 예제이다.
CallableStatement sCallStmt = connection().prepareCall("{call p1()}");
sCallStmt.execute();
ResultSet sRs = null;
ResultSetMetaData sRsMd = null;
do{
sRs = sCallStmt.getResultSet();
sRsMd = sRs.getMetaData();
if(sRsMd != null)
{
while(sRs.next())
{
// do something
for(int i=1; i <= sRsMd.getColumnCount(); i++)
{
System.out.println(sRs.getString(i));
}
}
}
}while(sCallStmt.getMoreResults());
sCallStmt.close();