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 3.1 스칼라 데이터 타입 – 대나무숲

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 *