- 출처 : http://academic.naver.com/view.nhn?doc_id=7779825 -
█ 변수 선언
● PL/SQL 변수 선언
1) DECLARE 부분에 변수를 정의한다.
2) ‘변수명 변수타입’의 형식으로 선언하며, 변수명에는 보통 v_를 붙여준다.
3) 대입연산자 ‘:=’나 키워드 DEFAULT로 초기화하며, NOT NULL 키워드가 붙을 수 있다.
4) 문자열은 작은따옴표(‘)를 사용한다.
5) 변수의 값을 상수(CONSTANT)로 설정하며, 반드시 값은 초기화 해야 한다.
6) BOOLEAN 타입은 TRUE, FALSE, NULL 중에 하나이다.
● %TYPE 속성을 사용한 변수 선언
1) v_name employees.last_name%TYPE;
2) v_balance NUMBER(7, 2);
3) v_min_balance v_balance%TYPE := 10;
1) EMPLOYEES 테이블의 LAST_NAME 열과 동일한 데이터 유형으로 정의한다.
2) 7 자릿수와 2개의 소수점이하 자릿수
3) V_min_balance는 v_balance와 동일한 데이터 유형으로 정의된다.
█ 변수 유형
● 스칼라 : 단일 값 (CHAR, VARCHAR2, LONG, NUMBER 등)
- CHAR : 고정길이 문자
- VARCHAR2 : 가변길이 문자
- LONG : 가변길이 문자
- LONG RAW : 이진 데이터 및 바이트 문자열
- NUMBER : (자릿수, 소수점 이하 자릿수)로 표시
- BINARY_INTEGER : 정수
- PLS_INTEGER : 부호표시 정수로 NUMBER와 BINARY_INTEGER보다 빠르다.
- BOOLEAN : TRUE, FALSE, NULL 중 하나를 저장
- DATE : 날짜 및 시간으로 최소단위 초
- TIMESTAMP : DATE의 확장형으로 (0~9까지의 정수)을 사용하며 자리수를 의미
- TIMESTAMP WITH TIME ZONE : 전송지역 시간으로 DB에 저장
- TIMESTAMP WITH LOCAL TIME ZONE : 수신지역 시간에 맞게 저장 (SELECT시 현지시간으로 환산)
- INTERVAL YEAR TO MONTH : 년월 시간의 간격으로 주기적인 적용시 사용
- INTERVAL DAY TO SECOND : 일시분초 시간의 간격으로 주기적인 적용시 사용
# 참고
(1) PLS_INTEGER
-2147483647과 2147483647 사이의 signed 정수에 대한 기본형으로 정의 할 수 있습니다.
BINARY_INTEGER와 NUMBER 타입이 "라이브러리를 이용" 하여 수치 연산을 하는 반면,
PLS_INTEGER는 실제 기계적인 연산(Machine arithmetic)을 수행하므로 BINARY_INTEGER보다
처리속도가 빠릅니다.
[출처] 변수 PLS_INTEGER|작성자 오라하