칼라 데이터타입에는 일반 단일 데이터타입의 변수와 %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
태그
문서에 대하여
- - 강좌 URL : http://www.gurubee.net/lecture/1044
- - 이 문서를 다른 블로그나 홈페이지에 게재하실 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- - 구루비의 모든 강좌는 크리에이티브 커먼즈의 저작자표시-비영리-동일조건변경허락(BY-NC-SA) 라이선스에 따라 자유롭게 사용할 수 있습니다.
'IT > 오라클' 카테고리의 다른 글
Oracle PL/SQL 강좌 3.2.2. PL/SQL 테이블 (0) | 2015.11.24 |
---|---|
Oracle PL/SQL 강좌 3.2.1. %ROWTYPE (0) | 2015.11.24 |
Oracle PL/SQL 강좌 2.2. 함수(FUNCTION) (0) | 2015.11.24 |
Oracle PL/SQL 강좌 2.1. 프로시저(PROCEDURE) (0) | 2015.11.24 |
Oracle PL/SQL 강좌 1.3. PL/SQL Block의 유형 (0) | 2015.11.24 |