728x90
20221026(수)
- 목차
- 예외처리
- 트랜잭션
< 예외처리 >
- (1) 문법 오류
- 객체(테이블, 뷰, 함수, 프로시저 등)나 키워드 이름을 잘못 참조
- 함수나 프로시저의 매개변수를 잘못 명시했을 때 발생되는 오류
- 이들은 컴파일할 때 걸러진다. - (2) 예외exception
- 컴파일 때는 아무런 문제가 없으나 실행, 즉 런타임 때 로직을 처리하면서 발생하는 오류
- 컴파일 시 발생하는 오류도 예외에 속하긴 하지만 보통 예외라고 하면 런타임 때의 오류 - 예외에는 다시 오라클에서 발생시키는 시스템 예외와
사용자가 의도적으로 발생시킬 수 있는 사용자 정의 예외로 구분할 수 있다. - 의도적 예외처리 구문 작성 및 예외처리 구문
DECLARE
vi_num NUMBER := 0;
BEGIN
vi_num := 10 / 0;
DBMS_OUTPUT.PUT_LINE('Success!');
EXCEPTION WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('오류가 발생했습니다');
END;
- 시스템 예외 - OTHERS 대신 들어갈 수 있음
1) ZERO_DIVIDE : 몫을 0으로 나눌 때 발생. 피제수 / 제수
2) NO_DATA_FOUND : SELECT INTO 문법 사용시 조회결과가 없는 경우.
예> MS-SQL SERVER : 예외발생 안됨
< 트랜잭션 >
- 트랜잭션 처리란?
특정 테이블에서 데이터를 읽어 조작 후 다른 테이블에 데이터를 입력하거나 갱신, 삭제하는데 처리 도중 오류가 발생하면 모든 작업을 원상태로 되돌리고, 처리 과정이 모두 성공했을 때만 최종적으로 데이터베이스에 반영한다. - COMMIT
COMMIT문을 실행하지 않으면 INSERT, UPDATE, DELETE, MERGE한 결과가 최종적으로 테이블에 반영되지 않음
COMMIT [WORK];
- ROLLBACK
COMMIT 과는 정반대로 DB에 가해진 변경사항을 취소시키는 기능을 하는데, 사용법은 다음과 같다.
ROLLBACK [WORK] [TO [SAVEPOINT] 세이브포인트명];
728x90
'🏫 Open API_JAVA' 카테고리의 다른 글
[67일차] JSP 페이지의 디렉티브 / 스크립트 요소 / 주석 / 제어문 / 내장 객체 (0) | 2022.11.01 |
---|---|
[66일차] 백엔드 / 웹 프로그래밍의 이해 / 각 파일들의 역할 - jsp, servlet (0) | 2022.10.31 |
[64일차] PL/SQL(익명블록, 변수, 상수, DML, 제어문, 함수) / 프로시저 (0) | 2022.10.25 |
[63일차] 계층형 쿼리 / 계층형 쿼리 응용 / WITH 절 / 분석함수 와 window 함수 (0) | 2022.10.25 |
[62일차] 서브 쿼리 (0) | 2022.10.24 |