티베로 프로시저 예외(Exception) 처리에 대해 질문드립니다 0 2 6,836

by 포병이짱이여 [Tibero] 예외 Exception [2024.07.25 10:41:43]


현재 커서와 루프를 통해 로직을 처리하는 프로시저를 사용하고 있습니다.

사용하는 동안 Exception이 발생한 경우는 없었는데 현재 예외처리를 아래와 같이 처리하고 있습니다.

BEGIN
  OPEN 'CURSOR' FOR
    (SELECT처리)
  LOOP FETCH 'CURSOR'
  BEGIN
    --루프로 처리할 로직
    EXCEPTION (1번. 루프 도는 중 발생하는 예외)
  END;
  CLOSE 'CURSOR'
  EXCEPTION (2번 커서 루프 전체 예외)
END;

현재 위와 같은 느낌으로 LOOP 로직에 BEGIN ~ END를 넣어 EXCEPTION을 넣고 LOOP로직을 감싸는 BEGIN ~ END에 EXCEPTION을 또 넣었습니다.

궁금한 부분은 만약 LOOP를 도는 중에 오류가 발생하면 1번 EXCEPTION이 발생할지 2번 EXCEPTION이 발생할지 궁금합니다.

그리고, 저렇게 처리할 필요가 과연 있을지도.. 궁금합니다!

by 마농 [2024.07.25 17:33:49]

PL/SQL 블럭은 begin ~ end 로 구성되고
이 블럭은 하나 이상의 서브블럭을 포함할 수 있습니다.
이는 단계별 예외처리하기에 매우 유용한 기능입니다.
http://gurubee.net/lecture/1342
답변입니다.
1. 예외는 1번에서 발생
2. 당연히 필요한 기능


by 포병이짱이여 [2024.07.26 13:45:50]

감사합니다! 저렇게 처리하니 정확히 어느부분에서 예외가 발생했는지 알기가 쉬워졌어요.. 감사합니다!

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입