안녕하세요.
프로시저를 호출해서 OutPutParameter가 아니라,
ResultSet이 나올때 어떤식으로 가져 올수 있는지 궁금합니다.
오라클의 경우엔 1번째 파라메타에 Type.Oracle.Cursor를 이용해서
getObject(1) 이런식으로 얻어올수 있는것 같은데,
MSSQL일 경우에는 어떻게 ResultSet을 가져올 수 있는지 모르겠네요.
현재는 임시 방편으로 이런식으로 사용하고 있습니다.
ResultSet rset = null;
PreparedStatement pstmt = null;
CallableStatement cstmt = null;
DBUtil DBPool = new DBUtil();
String[] returnString = new String[3];
try {
useQuery = new StringBuffer();
useQuery.append("EXEC SPSL_10101 ?, ?, ?, ?, ?, ? ");
pstmt = conn.prepareStatement(useQuery.toString());
pstmt.setString(1, pSpParam[0]); // 사업장코드
pstmt.setString(2, pSpParam[1]); // 거래처코드
pstmt.setString(3, pSpParam[2]); // 거래처코드
pstmt.setString(4, pSpParam[3]); // 주문유형코드
pstmt.setString(5, pSpParam[4]); // 자료구분코드
pstmt.setString(6, pSpParam[5]); // 주문일자
rset = pstmt.executeQuery();
if ( rset.next() ) {
returnString[0] = rset.getString("cred_ck") ==null?"":rset.getString("cred_ck");
returnString[1] = rset.getString("lmt_ck") ==null?"":rset.getString("lmt_ck");
returnString[2] = rset.getString("rmd_ck") ==null?"":rset.getString("rmd_ck");
} else {
returnString = null;
}
} catch ( Exception e ) {
throw e;
} finally {
DBPool.cleanup( pstmt, rset );
try { if ( cstmt != null ) cstmt.close(); } catch ( Exception e ) {}
}
return returnString;
cstmt에서 프로시저를 실행하여, ResultSet을 가져올수 있는 방법이 없을까요?
조언 부탁드립니다. |