삽질의 리포팅

3.3 오라클 데이터 타입

느린구름 2011. 7. 22. 14:56

오라클 클럽 : 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로 변환 하는 기능 제공하지 않음