첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
유용한 소스 코드가 있으면 icodebroker@naver.com으로 보내주시면 감사합니다.
블로그 자료는 자유롭게 사용하세요.

728x90
반응형

■ SQL%ROWCOUNT 암시적 커서 속성 사용하기

------------------------------------------------------------------------------------------------------------------------

-- 직원 테이블을 생성한다.

CREATE TABLE EMP

(

    EMPNO    NUMBER(4, 0)

   ,ENAME    VARCHAR2(10)

   ,SAL      NUMBER(7, 2)

   ,CONSTRAINT PK_EMP PRIMARY KEY (EMPNO)

);

 

-- 직원 테이블에 데이터를 추가한다.

INSERT INTO EMP VALUES(7369, 'SMITH' ,  800);

INSERT INTO EMP VALUES(7499, 'ALLEN' , 1600);

INSERT INTO EMP VALUES(7521, 'WARD'  , 1250);

INSERT INTO EMP VALUES(7566, 'JONES' , 2975);

INSERT INTO EMP VALUES(7654, 'MARTIN', 1250);

INSERT INTO EMP VALUES(7698, 'BLAKE' , 2850);

INSERT INTO EMP VALUES(7782, 'CLARK' , 2450);

INSERT INTO EMP VALUES(7788, 'SCOTT' , 3000);

INSERT INTO EMP VALUES(7839, 'KING'  , 5000);

INSERT INTO EMP VALUES(7844, 'TURNER', 1500);

INSERT INTO EMP VALUES(7876, 'ADAMS' , 1100);

INSERT INTO EMP VALUES(7900, 'JAMES' , 950 );

INSERT INTO EMP VALUES(7902, 'FORD'  , 3000);

INSERT INTO EMP VALUES(7934, 'MILLER', 1300);

 

COMMIT;

 

-- 직원 테이블 데이터를 조회한다.

SELECT * FROM EMP;

 

-- 직원명 변경하기 프로시저를 생성한다.

CREATE OR REPLACE PROCEDURE ChangeEmployeeName(P_OLD_NAME IN EMP.ENAME%TYPE, P_NEW_NAME IN EMP.ENAME%TYPE, P_RECORD_COUNT OUT PLS_INTEGER)

IS

BEGIN

    UPDATE EMP

    SET    ENAME = P_NEW_NAME

    WHERE  ENAME = P_OLD_NAME;

    

    P_RECORD_COUNT := SQL%ROWCOUNT;

END;

 

SET SERVEROUTPUT ON;

 

DECLARE

    V_RECORD_COUNT PLS_INTEGER;

BEGIN

    ChangeEmployeeName('ALLEN', 'ALLEN_NEW', V_RECORD_COUNT);

    

    DBMS_OUTPUT.PUT_LINE('RECORD COUNT : ' || V_RECORD_COUNT);

END;

------------------------------------------------------------------------------------------------------------------------

728x90
반응형
Posted by 사용자 icodebroker

댓글을 달아 주세요