IT정보

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

YUNOLAND 2008. 7. 9. 10:03

%TYPE 데이터형

 - %TYPE 데이터형은 기술한 데이터베이스 테이블의 컬럼 데이터 타입을 모를 경우 사용가능
 - 코딩 이후 데이터베이스 컬럼의 데이터 타입이 변경될 경우 다시 수정할 필요가 없다
 - 이미 선언된 다른 변수나 데이터베이스 컬럼의 데이터 타입을 이용하여 선언한다.
 - 데이터 베이스 테이블과 컬럼 그리고 이미 선언한 변수명이 %TYPE 앞에 올 수 있다.

%TYPE 속성을 이용하여 얻을 수 있는 장점

 - 기술한 DB column definition 을 정확히 알지 못하는 경우
 - 기술한 DB column definition 이 변경  되어도 다시 PL/SQL 을 고칠 필요가 없다



이제 기본적으로 작성되어있는 Emp테이블을 이용해 기본적인 PL/SQL 문을 작성해 보자.

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

IS


-- %TYPE 데이터형 변수 선언
v_empno emp.empno%TYPE;
v_ename emp.ename%TYPE;
v_sal emp.sal%TYPE;

BEGIN

DBMS_OUTPUT.ENABLE;

-- %TYPE  데이터형 변수 사용

SELECT empno, ename, sal
INTO v_empno, v_ename, v_sal
FROM emp
WHERE empno = p_empno;

-- 결과 값 출력
DBMS_OUTPUT.PUT_LINE('사원번호:' || v_empno);
DBMS_OUTPUT.PUT_LINE('사원이름:' || v_ename);
DBMS_OUTPUT.PUT_LINE('사원급여:' || v_sal);

END;
/


이렇게 코딩 작성이 끝나면 프로시져가 생성된다.

SET SERVEROUTPUT ON  -- DBMS_OUTPUT 결과값을 화면에 출력하기 위해
(툴에서는 상관없다. 콘솔 창에서 결과값이 출력이 안될 수 있기 때문에..)

<실행>
EXECUTE Emp_Info(7369) -- 7369는 위에서 선언 했던 p_empno를 매개변수로 받는 값이다.

위와 같이 실행 시키면

사원번호 : 7369 
사원이름 : SMITH
사원급여 : 880

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