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레벨부터 시작하고
부서전체를 트리로 보여주되,
최고상위 부서부터 하위부서이고,
레벨이 같으면 부서명으로 정렬한다.

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

비교하려는 대상의 타입이 보통은 varchar2 또는 char 타입으로 설정되어 있을것입니다.

계산을 하려면 to_date 로 컨버팅을 해야합니다.


SELECT ABS((TO_DATE('큰날짜', 'YYYYMMDDHH24MISS')-(TO_DATE('작은날짜', 'YYYYMMDDHH24MISS')))) *24 *60 *60 FROM DUAL 


이렇게 간단하게 구할 수 있겠네요.

ABS 는 절대값으로 만드는것이구요. 

TO_DATE 함수를 이용해서 더하기 빼기 (+, -) 연산을 하면 일단위로 값이 리턴됩니다.

그 값을 초단위로 환산하기위해서 *24*60*60 해줍니다. 

그러면 초단위로 환산됩니다.


감사합니다.

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

오라클:oracle 사용자정의오류 RAISE_APPLICATION_ERROR  (0) 2022.02.08
오라클 ORDER SIBLINGS BY  (0) 2022.02.08
자바 워터마크 java watermark  (0) 2020.03.29
jdk 1.8 다운로드  (0) 2017.05.19

+ Recent posts