3.1 스칼라 데이터 타입

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

스칼라 데이터타입에는 일반 단일 데이터타입의 변수와 %TYPE 데이터형 변수가 있다.

일반변수 선언 문법

  • – Identifier(변수)의 이름은 sql의 object명과 동일한 규칙을 따른다.
  • – Identifier를 상수로 지정하고 싶은 경우는 CONSTANT라는 KEYWORD를 명시하고 반드시 초기값을 할당 한다.
  • – NOT NULL이 정의되어 있으면 초기값을 반드시 지정하고, 정의되어 있지 않을 때는 생략 가능하다.
  • – 초기값은 할당 연산자(:=)를 사용하여 정의 한다.
  • – 초기값을 정의하지 않으면 Identifier는 NULL값을 가지게 된다.
  • – 일반적으로 한 줄에 한 개의 Identifier를 정의 한다.

일반변수 선언 예제

 
-- 숫자형 상수 선언(변할 수 없다)
v_price CONTANT NUMBER(4,2) := 12.34 ;     

v_name VARCHAR2(20) ; 

v_Bir_Type  CHAR(1) ; 

-- NOT NULL의 TRUE로 초기화 
v_flag  BOOLEAN  NOT NULL := TRUE ;      

v_birthday DATE;
    

%TYPE 데이터형

  %TYPE 데이터형은 기술한 데이터베이스 테이블의 컬럼 데이터 타입을 모를 경우 사용할 수 있고, 코딩이후 데이터베이스 컬럼의 데이터 타입이 변경될 경우 다시 수정할 필요가 없다.

  이미 선언된 다른 변수나 데이터베이스 컬럼의 데이터 타입을 이용하여 선언 한다.

  데이터베이스 테이블과 컬럼 그리고 이미 선언한 변수명이 %TYPE앞에 올수 있다.

%TYPE 속성을 이용하여 얻을 수 있는 장점
  • – DB column definition을 정확히 알지 못하는 경우에 사용할 수 있다.
  • – DB column definition이 변경 되어도 다시 PL/SQL을 고칠 필요가 없다.

%TYPE 사용 예제

 
SQL> CREATE OR REPLACE PROCEDURE Emp_Info
      -- IN Parameter 
      ( 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;
       /

-- DBMS_OUTPUT 결과값을 화면에 출력 하기위해
SQL> SET SERVEROUTPUT ON;     

-- 실행 결과 
SQL> EXECUTE Emp_Info(7369); 

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

답글 남기기 0

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