Where The Streets Have No Name

JDBC에서 프로시져나 함수를 호출시 에러 처리 방법 본문

Developement/Java

JDBC에서 프로시져나 함수를 호출시 에러 처리 방법

highheat 2006. 10. 26. 09:04
 
JDBC를 이용하여 오라클 프로시져나 함수를 호출시 에러 처리 방법



아래 코드 처럼 cstmt.registerOutParameter(i, Types.VARCHAR);
를 이용하여 오류가 있는지 없는지 체크하면 되구요...


            cstmt = con.prepareCall("BEGIN ? := DELETE_XXX(?, ?); END;");
            cstmt.registerOutParameter(i++, OracleTypes.CURSOR);
            cstmt.setString(i++, form.getParam("airline_cd"));
            cstmt.registerOutParameter(i, Types.VARCHAR);
            cstmt.execute();
          
            outmsg = cstmt.getString(i);

            if(outmsg != null)
                System.out.print("############# Error Msg dao.cart.CartDAO.setIndoOK[PKG_EM_SALE_INFO.SELECT_SALE_INFO] : " + outmsg);





PL/SQL에서는 다음처럼 에러를 out parameter에 넣으면 되죠.



PROCEDURE DELETE_XXX(
  P_XXX_CD    IN     SALE_INFO.XXX_CD%TYPE,
  P_OUTMSG  OUT    VARCHAR2
)IS

BEGIN
   DELETE
     FROM
     SALE_INFO
    WHERE
         XXX_CD = P_XXX_CD;
  
   COMMIT;

EXCEPTION
  WHEN OTHERS THEN
  P_OUTMSG := SQLERRM;
  ROLLBACK;

END;