암시적 커서(Implicit Cursor)란?
암시적인 커서는 오라클이나 PL/SQL실행 메커니즘에 의해 처리되는 SQL문장이 처리되는 곳에 대한 익명의 주소이다.
오라클 데이터베이스에서 실행되는 모든 SQL문장은 암시적인 커서가 생성되며, 커서 속성을 사용 할 수 있다.
암시적 커서는 SQL 문이 실행되는 순간 자동으로 OPEN과 CLOSE를 실행 한다.
암시적 커서의 속성
- – SQL%ROWCOUNT : 해당 SQL 문에 영향을 받는 행의 수
- – SQL%FOUND : 해당 SQL 영향을 받는 행의 수가 한 개 이상일 경우 TRUE
- – SQL%NOTFOUND : 해당 SQL 문에 영향을 받는 행의 수가 없을 경우 TRUE
- – SQL%ISOPEN : 항상 FALSE, 암시적 커서가 열려 있는지의 여부 검색
암시적 커서(Implicit Cursor) 예제
SQL> CREATE OR REPLACE PROCEDURE Implicit_Cursor (p_empno IN emp.empno%TYPE) IS v_sal emp.sal%TYPE; v_update_row NUMBER; BEGIN SELECT sal INTO v_sal FROM emp WHERE empno = p_empno; -- 검색된 데이터가 있을경우 IF SQL%FOUND THEN DBMS_OUTPUT.PUT_LINE('검색한 데이터가 존재합니다 : '||v_sal); END IF; UPDATE emp SET sal = sal*1.1 WHERE empno = p_empno; -- 수정한 데이터의 카운트를 변수에 저장 v_update_row := SQL%ROWCOUNT; DBMS_OUTPUT.PUT_LINE('급여가 인상된 사원 수 : '|| v_update_row); EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE(' 검색한 데이터가 없네요... '); END; / -- DBMS_OUTPUT.PUT_LINE을 출력하기 위해 사용 SQL> SET SERVEROUTPUT ON ; -- 프로시저 실행 SQL> EXECUTE Implicit_Cursor(7369); 검색한 데이터가 존재합니다 : 880 급여가 인상된 사원 수 : 1