1. CHAR의 길이는 고정되어 있지만 VARCHAR2의 길이는 변경될 수 있습니다. 예를 들어 CHAR(20)의 경우 문자열 "abc"를 저장하려면 저장하는 문자가 20바이트(17개의 null 문자 포함)를 차지한다는 의미입니다. 동일한 VARCHAR2(20)는 3바이트의 길이만 차지하며, 20은 최대값만 저장합니다. 20자 미만일 경우 실제 길이에 따라 저장됩니다.
2. CHAR는 VARCHAR2보다 약간 더 효율적입니다.
3. 현재 VARCHAR은 VARCHAR2의 동의어입니다. 업계 표준 VARCHAR 유형은 빈 문자열을 저장할 수 있지만 Oracle은 향후 그렇게 할 수 있는 권한을 보유하고 있음에도 불구하고 이를 수행하지 않습니다. Oracle은 VARCHAR2 데이터 유형을 개발했습니다. 이 유형은 데이터베이스의 varchar 열이 NULL 값을 저장할 수 있는 기능을 변경합니다. 이전 버전과의 호환성을 원할 경우 Oracle은 VARCHAR 대신 VARCHAR2를 사용할 것을 권장합니다.
언제 CHAR를 사용해야 하고, 언제 varchar2를 사용해야 하나요?
CHAR와 VARCHAR2는 상충되는 단일체이며, 둘은 상호보완적입니다.
VARCHAR2는 CHAR보다 공간을 절약하고, CHAR보다 효율성이 약간 떨어집니다. 우리가 데이터베이스 설계에서 흔히 말하는 "공간을 효율성으로 바꾸세요."
VARCHAR2는 CHAR보다 공간을 절약하지만, VARCHAR2 컬럼이 자주 수정되고 수정된 데이터의 길이가 매번 달라지는 경우 '행 마이그레이션'(Row Migration) 현상이 발생하여 I/O 중복이 발생합니다. O, 데이터베이스 설계 및 조정 시 피해야 할 사항입니다. 이 경우 VARCHAR2 대신 CHAR를 사용하는 것이 좋습니다. (다이너스티네트워크 wangchao.net.cn)