3.3 오라클 데이터 타입
오라클 클럽 : http://www.oracleclub.com/lecture/1380
-CHAR, VARCHAR2, NUMBER, DATE, LONG, RAW, LONG RAW, ROWID
-원하는 정보 효율적 처리를 위해 적정한 데이터 타입 선정 필요
-부적절한 타입 선정은 수행속도를 나쁘게 하고 불필요한 자원 낭비 초래
VARCHAR2 타입
-가변길이 문자형
-2000바이트
-제한이 적음
-일부 입력시 뒷부분 NULL
-입력한 값의 뒷부분에 있는 BLANK도 같이 입력
-전혀 값을 주지 않으면 NULL입력
-지정된 길이보다 길면 입력 시 에러 발생
-컬럼 길이의 편차가 심한 경우, NULL로 입력되는 경우가 많은 경우 VARCHAR2사용
NUMBER 타입
-숫자형, 음수, ZERO, 양수
-38자리
-소수점 미지정시, 소수점 입력 또는 지정된 소수점 자리 이상 입력시 반올림되어 저장
-연산이 필요한 컬럼은 NUMBER타입으로 지정
-NUMBER(P,S) p는 S의 자리수를 포함한 길이
-가변 길이이므로 충분히 지정
DATE타입
-날짜형
-일자나 시간의 연산이 빈번한 경우 사용
-포함정보: 세기, 년도, 월, 일, 시간, 분, 초
-NLS_DATE_FORMAT을 이용하여 국가별 특수성 해결
-시간 미지정시 00:00:00 입력
-일시 미지정시 1일로 지정
-SYSDATE는 현재일과 시간 제공
LONG타입
-2기가 바이트 가변길이 문자 저장
-VARCHAR2유사
-하나의 테이블에 하나의 LONG타입만 사용
-(NOT)NULL을 제외한 다른 제약 조건은 지정할 수 없음
-인덱스 생성 불가
-PROCEDURE나 Stored FUNCTION에서 LONG타입 변수를 받을 수 없음
-Stored FUNCTION은 LONG 타입 출력불가
-SELECT문 내에서 WHERE,GROUP BY, ORDER BY, CONNECT BY, DISTINCT 불가
-SQL Function(SUBSTR,REPLACE)사용불가
-CREATE TABLE..AS SELECT 사용불가
RAW, LONG RAW, ROWID타입
-그래픽 IMAGE나 디지털 SOUND저장
-HEX-DECIMAL형태로 RETURN
-RAW는 VARCHAR2와 유사
-LONG RAW는 LONG과 유사하나 제한이 있음
->저장,추출만 가능, DATA가공 불가
->LONG RAW는 LONG과 같은 제한 사항
3.4 LOG, LONG, LONG RAW 데이터 타입 간의 비교
오라클 클럽: http://www.oracleclub.com/lecture/1841?
-테이블 한 ROW에 여러 LOB 사용 가능, LONG, LONG RAW 컬럼은 한 ROW에 하나만 사용
-LOB 사용자 정의 데이터 타입(user-defined datatype)의 속성(attribute) 사용, LONG, LONG RAW 속성으로 사용 불가
-LONG, LONG RAW 값 전체가 테이블 내 저장, LOB 테이블 컬럼내 LOB locator만 저장
-BLOB과 CLOB(내부LOB)데이터는 별도 테이블스페이스에 저장
BFILE(외부LOB)데이터는 데이터베이스 외부의 별도 파일로 존재
LOB컬럼을 액세스 할 경우 locator값만 return되는 반면, LONG, LONG RAW 컬럼을 액세스할 경우 전체값 리턴
-LOB 데이터는 4GB까지 저장, BFILE컬럼을 가리키는 파일 크기는 4GB OS지원 최대크기까지 지원
LONG, LONG RAW 2GB가능
- 데이터에 대한 램던 액세스 기능 또는 데이터 조작 할 경우 LOB사용
-LOB는 랜덤 액세스, LONG 순차적으로 읽어 처리
-LOB데이터에 대한 replication을 local 또는 remote에서 수행
LONG/LONG RAW 컬럼 데이터는 replication되지 않음
-LONG컬럼의 데이터는 TO_LOB()이라는 함수 사용 하여 LOB으로 변환
LOB을 LONG/LONG RAW로 변환 하는 기능 제공하지 않음