2014년 5월 13일 화요일

[오라클문자열, CARCHAR]oracle char varchar2 비교 , ORACLEJAVA커뮤니티 오라클강좌교육

[오라클문자열, CARCHAR]oracle char varchar2 비교 , ORACLEJAVA커뮤니티 오라클강좌교육

CHAR DATATYPE은 FIXED LENGTH CAHRACTER STRING을 저장합니다. TABLE이 CHAR COLUMN을 갖고 CREATE될 때 COLUMN LEGTH는 BYTES로 1 에서 255까지의 DATA를 저장할 수 있습니다.
COLUMN길이가 10 으로 정의되었을 때 한번 INSERT 문장을 통해 5 BYTES를 입력하였다면 나머지 5 BYTES는 SPACE처리되어 그 DATA의 SIZE는 10 BYTE가 됩니다.
SQLPLUS의 VSIZE함수를 통해 알아보면 다음과 같습니다.
  SELECT VSIZE(column_name) FROM table_name;
column_name
------------
    10
    10
VARCHAR2 DATATYPE은 VARIABLE-LENGTH CHARACTER STRINGS을 저장합니다. TABLE이 VARCHAR2 COLUMN을 갖고 CREATE될때 COLUMN LENGTH 1에서 2000 BYTES까지의 DATA를 저장할 수 있습니다. COLUMN길이가 10으로 정의되었을 때 한번 INSERT 문장을 통해 5 BYTES를 입력하였다면 나머지 5 BYTES는 NULL 처리되어 그 DATA의 SIZE는 5 BYTE가 됩니다.
 우리가 SQLPLUS의 VSIZE함수를 통해 알아보면 다음과 같습니다.
SELECT VSIZE(column_name) FROM table_name;
column_name
------------
     5
     5
위와 같은 특징을 갖고 있기 때문에 정확히 구분하여 사용해야만 SPACE를 절약할 수 있고 ERROR를 방지할 수 있습니다.
  만약 사용자가 COMPARISON상에서 ANSI 호환성을 요구한다면 DATA TYPE를 CHAR로 선언해야 합니다.즉 나머지 공간(TRAILING BLANK)이 STRING COMPARISONS에서 중요한다면 CHAR로 해야 합니다.
특수한 경우를 제외한 나머지 경우에는 VARCAHR2로 사용하는 것이 SPACE가 절약 된다.

댓글 없음:

댓글 쓰기