Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the ultimate-member domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /ledcorps/www/wp/wp-includes/functions.php on line 6114 6.1 암시적 커서(Implicit Cursor) – 대나무숲

6.1 암시적 커서(Implicit Cursor)

출처 http://www.gurubee.net/lecture/1062

암시적 커서(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
        

답글 남기기 0

Your email address will not be published. Required fields are marked *