336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

java 프로그램 구현시에 오라클의 프로시저에서 예외를 발생시킨 후 코드와 메시지를 전달하는 방법이다.

RAISE_APPLICATION_ERROR(에러코드, 에러구문);

에러코드는 -20000 에서 -20999 사이의 값을 입력한다.

프로시저 생성

create or replace raise_test(P_IN IN VARCHAR2, P_OUT OUT VARCHAR2) IS

V_OUT VARCHAR2(1000);

BEGIN

     BEGIN
          --ERROR 발생코드
     EXCEPTION
          WHEN OTHERS THEN
           ROLLBACK;
            RAISE_APPLICATION_ERROR(-20000, SQLERRM);
     END;

END;
/

JAVA 코드

try{
// 데이터베이스 드라이버를 로드 Class.forName("oracle.jdbc.driver.OracleDriver");
// Connection 객체 생성
Connection con = DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:xe","SCOTT","TIGER");
// 프로시저를 실행할 수 있는 Statement 객체 생성
CallableStatement cstmt = con.prepareCall("{call raise_test(?,?)}");
cstmt.setString(1, "값1");
// ?에 값 바인딩
cstmt.setString(2, "값2");
// 프로시저 실행
cstmt.executeQuery();
// 사용다한 객체 닫기
cstmt.close();
con.close();
} catch(Exception e){ System.out.println(e.getMessage()); e.printStackTrace();
}

'Programming > java' 카테고리의 다른 글

오라클 ORDER SIBLINGS BY  (0) 2022.02.08
자바 워터마크 java watermark  (0) 2020.03.29
오라클 두 날짜, 시간 사이를 초단위로 환산하기  (0) 2017.10.22
jdk 1.8 다운로드  (0) 2017.05.19
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

오라클 쿼리 작성시에 CONNECT BY 구문을 사용할때가 있다.
이때 정렬은 ORDER BY 구문으로 처리가 안된다.
ORDER SIBLINGS BY 구문으로 처리해야한다.

SELECT *
  FRIM DEPT_INFO
START WITH DEPT_LVL = 1
CONNECT BY PRIOR DEPT_CD = UPPER_DEPT_CD
ORDER SIBLINGS DEPT_NM ASC

위 쿼리는 부서의 레벨은 1레벨부터 시작하고
부서전체를 트리로 보여주되,
최고상위 부서부터 하위부서이고,
레벨이 같으면 부서명으로 정렬한다.

+ Recent posts