Dorothy_YANG
With Dorothy
Dorothy_YANG
전체 방문자
오늘
어제
  • 분류 전체보기 (279)
    • Hi, I'm Dorothy 🕵️‍♂️ (21)
      • Slowly but Surely (18)
      • IT certifications (3)
    • 🤯TIL (80)
      • HTML & CSS (2)
      • Javascript & jQuery (13)
      • React (13)
      • C언어 (1)
      • JAVA (22)
      • Python (2)
      • Oracle SQL (10)
      • My SQL (5)
      • Spring (12)
    • 💻Programmers (17)
    • 🏫 Open API_JAVA (101)
    • 🌎 Project (10)
      • Shopping (10)
    • 💥 Error (24)
    • ⚙ Setting (23)

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

태그

  • spring
  • 노마드코더
  • SQL
  • 서버등록
  • 비쥬얼스튜디오코드
  • CSS
  • 창초기화
  • java
  • HTML
  • Database
  • sql기간
  • SQLD합격
  • oracle
  • 백준
  • AllArgsConstructor
  • 독학후기
  • 파이썬온라인
  • SQLD합격후기
  • googlecolaboratory
  • 시작일종료일
  • 연습문제
  • 기간설정
  • Eclipse
  • 코딩앙마
  • 오류해결
  • 기간쿼리
  • 이것이자바다
  • 콜라보레이토리
  • Javascript
  • colaboratory

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Dorothy_YANG

With Dorothy

🏫 Open API_JAVA

[65일차] 예외처리 / 트랜잭션

2022. 10. 30. 21:58
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
    '🏫 Open API_JAVA' 카테고리의 다른 글
    • [67일차] JSP 페이지의 디렉티브 / 스크립트 요소 / 주석 / 제어문 / 내장 객체
    • [66일차] 백엔드 / 웹 프로그래밍의 이해 / 각 파일들의 역할 - jsp, servlet
    • [64일차] PL/SQL(익명블록, 변수, 상수, DML, 제어문, 함수) / 프로시저
    • [63일차] 계층형 쿼리 / 계층형 쿼리 응용 / WITH 절 / 분석함수 와 window 함수
    Dorothy_YANG
    Dorothy_YANG
    Slowly but Surely, 비전공 문과생의 개발공부

    티스토리툴바