코딩 연습장/데이터베이스(DB)

데이터베이스-커서와 예외처리

Do아 2021. 3. 18. 08:49
728x90

2021/03/04(목)

7번째 수업

1) 커서란?

SELECT문 또는 데이터 조작어 같은 SQL무을 실행했을 때 해당 SQL무을 처리하는 정보를 저장한 메모리 공간

DECLARE CURSOR 커서명 IS SQL; BEGIN OPEN 커서명; FETCH 커서명 INTO 변수; CLOSE 커서명; END;

커서를 이용한 LOOP문

SET SERVEROUTPUT ON; 
DECLARE V_DEPT DEPT%ROWTYPE; 
CURSOR C1 IS SELECT DEPTNO, DNAME, LOC FROM DEPT; 
BEGIN OPEN C1; 
LOOP FETCH C1 INTO V_DEPT; 
EXIT WHEN C1%NOTFOUND; 
DBMS_OUTPUT.PUT_LINE('DEPTNO : ' || V_DEPT.DEPTNO ||'DNAME : ' || V_DEPT.DNAME ||'LOC : ' || V_DEPT.LOC); 
END LOOP; CLOSE C1; END;

​

커서이름%NOTFOUND - 수행된 FETCH문을 통해 추출된 행이 있으면 FALSE, 없으면 TRUE를 반환

커서이름%FOUND - 수행된 FETCH문을 통해 추출된 행이 있으면 TRUE, 없으면 FALSE

커서이름%ROWCOUNT - 현재까지 추출된 행 수를 반환

커서이름%ISOPEN - 커서가 열려 있으면 TRUE,닫혀있으면 FALSE반환

2) 예외처리

프로그램이 실행되는 도중 발생하는 오류를 예외라고 한다

이것을 처리해 주는 것이 예외처리

EXCEPTION WHEN 에외 이름1[OR 예외 이름] THEN 예외처리에 사용할 명령어; WHEN 에외 이름2[OR 예외 이름] THEN 예외처리에 사용할 명령어; ... WHEN OTHERS THEN 예외처리에 사용할 명령어;

--> 예외 종류는 많이 있고 사전 정의 된 예외의 이름이 있다 (이것은 찾아보면 됌)

 

728x90