IT정보

%ROWTYPE 속성을 이용한 Procedure(프로시져) 기본 예제

YUNOLAND 2008. 7. 9. 10:47
%ROWTYPE

 - 테이블이나 뷰 내부의 컬럼 데이터형, 크기, 속성 등을 그대로 사용 가능
 - %ROWTYPE 앞에 오는 것은 데이터 베이스 테이블 이름이다
 - 지정된 테이블의 구조와 동일한 구조를 갖는 변수 선언 가능
 - 데이터베이스 컬럼들의 수나 DATATYPE을 알지 못할 때 편리
 - 테이블의 데이터 컬럼의 DATATYPE 이 변경될 경우 프로그램을 재 수정할 필요 없음

%ROWTYPE 을 이용한 간단한 프로시져 예제를 들어보자

CREATE OR REPLACE PROCEDURE RowType_Test (p_empno IN emp.empno%TYPE)

IS
  v_emp emp%ROWTYPE;

BEGIN
  DBMS_OUTPUT.ENABLE;

  -- %ROWTYPE 변수 사용
  SELECT empno, ename, hiredate
  INTO v_emp.empno, v_emp.ename, v_emp.hiredate
  FROM emp WHERE empno = p_empno;
  DBMS_OUTPUT.PUT_LINE('사원번호:' || v_emp.empno);
  DBMS_OUTPUT.PUT_LINE('사원이름:' || v_emp.ename);
  DBMS_OUTPUT.PUT_LINE('입 사 일:' || v_emp.hiredate);

END;
/

프로시져가 생성되었습니다.

실행 전에 우선 출력을 위해 설정할 것이 있다.
SET SERVEROUTPUT ON;  -- DBMS_OUTPUT.PUT_LINE 을 출력하기 위해 사용


아래와 같이 실행 시키면
EXECUTE RowType_Test(7900) -- 7900은 p_empno 매개변수 값이다.


실행 결과

사원번호 : 7900
사원이름 : JAMES
입 사 일 : 81/12/03

PL/SQL 처리가 정상적으로 완료 되었습니다.