CHAR DATATYPE은 FIXED LENGTH CAHRACTER STRING을 저장합니다.
COLUMN LEGTH는 1 에서 255BYTES 까지의 DATA를 저장할 수 있읍니다.
COLUMN길이가 10 으로 정의되었을때 한번 INSERT 문장을 통해 5 BYTES를 입력하였다면
나머지 5 BYTES는 SPACE처리되어 그 DATA의 SIZE는 10 BYTE가 됩니다.
반면에 VARCHAR2 DATATYPE은 VARIABLE-LENGTH CHARACTER STRINGS을 저장합니다.
COLUMN LENGTH는 1에서 4000BYTES 까지의 DATA를 저장할수 있읍니다.
COLUMN길이가 10 으로 정의되었을때 한번 INSERT 문장을 통해 5 BYTES를 입력하였다면
나머지 5 BYTES는 NULL 처리되어 그 DATA의 SIZE는 5 BYTE가 됩니다.
우리가 SQLPLUS의 VSIZE함수를 통해 알아보면 다음과 같습니다.
SQL>CREATE TABLE varchar_test(
char_ CHAR(10),
varchar_ VARCHAR2(10));
SQL> INSERT INTO varchar_test(char_ , varchar_) VALUES('aaaaa', 'bbbbb');
1 개의 행이 만들어졌습니다.
SQL>SELECT VSIZE(char_) "CHAR_DATATYPE", VSIZE(varchar_) "VARCHAR2_DATATYPE"
FROM varchar_test
CHAR_DATATYPE VARCHAR2_DATATYPE
------------- -----------------
10 5
위와 같은 특징을 갖고 있기 때문에 정확히 구분하여 사용해야만 SPACE를 절약할수 있고
ERROR를 방지할수 있습니다.
만약 사용자가 COMPARISON상에서 ANSI호환성을 요구한다면 를 DATA TYPE를 CHAR로 선언해야 합니다.
즉 나머지공간이 STRING COMPARISONS에서 중요한다면 CHAR로 해야합니다.
그런 특수한 경우 제외한 나머지 경우에는 VARCAHR2로 사용하는 것이 SPACE가 절약 될 것입니다.
'DataBase > Oracle' 카테고리의 다른 글
DATABASE LINK 사용 방법 (0) | 2008.08.08 |
---|---|
[퍼옴]COLD BACKUP(오프라인 백업) (0) | 2008.08.08 |
[퍼옴]Ampersand나 특수 문자를 갖는 데이타를 insert하는 방법 (0) | 2008.08.08 |
[퍼옴]한글을 2byte로 계산하여 리턴 받으려면(LENGTH와 LENGTHB함수) (0) | 2008.08.08 |
[퍼옴]페이징 기법 (0) | 2008.08.08 |