Oracle 11g에서의 데이터 타입 전환

신수정·2024년 4월 10일

데이터베이스에서 데이터 타입은 저장하려는 데이터의 성격과 양에 따라 적절히 선택되어야 합니다. VARCHAR2 데이터 타입은 일반적으로 짧은 문자열을 저장하는 데 사용됩니다. 그러나 상품 정보처럼 긴 텍스트를 저장해야 하는 경우, VARCHAR2의 제한된 용량(최대 4000바이트)은 때로는 부족할 수 있습니다. 이런 경우, 더 많은 데이터를 저장할 수 있는 CLOB (Character Large Object) 데이터 타입으로 변경하는 것이 필요합니다. CLOB은 최대 4GB의 문자 데이터를 저장할 수 있어, 대용량 텍스트를 다룰 때 적합합니다.

1. 임시 CLOB 컬럼 추가

먼저, 기존 GOODS 테이블에 CLOB 타입의 임시 컬럼을 추가합니다. 이 컬럼은 기존 gContent 컬럼의 데이터를 임시로 저장할 공간으로 사용됩니다.
ALTER TABLE GOODS ADD (temp_content CLOB);

2. 기존 데이터 이전

다음으로, 기존 gContent 컬럼의 데이터를 새로운 temp_content 컬럼으로 이전합니다. 이 때 TO_CLOB 함수를 사용하여 데이터 타입을 VARCHAR2에서 CLOB으로 변환합니다.
UPDATE GOODS SET temp_content = TO_CLOB(gContent);

3. 기존 컬럼 삭제

데이터 이전이 완료된 후, 기존의 gContent 컬럼을 테이블에서 삭제합니다. 이 작업을 통해 임시 컬럼을 최종 컬럼으로 대체할 준비를 합니다.
ALTER TABLE GOODS DROP COLUMN gContent;

4. 임시 컬럼 이름 변경

마지막 단계로, 임시로 생성한 CLOB 컬럼의 이름을 원래 gContent 컬럼의 이름으로 변경합니다. 이렇게 하면, 모든 데이터와 새 데이터 타입 설정이 최종적으로 완료됩니다.
ALTER TABLE GOODS RENAME COLUMN temp_content TO gContent;

이 과정을 통해 GOODS 테이블의 gContent 컬럼을 VARCHAR2에서 CLOB으로 성공적으로 변경할 수 있었습니다. 이 변경으로 인해 상품 정보와 같은 대용량 텍스트 데이터를 효과적으로 관리할 수 있게 되었습니다. 데이터 타입 변경은 성능 저하를 유발할 수 있으므로, 저통량 시간에 작업을 수행하는 것이 좋습니다. 데이터베이스 관리에서는 이러한 변경 사항을 정기적으로 검토하여 최적의 성능과 용량을 유지하는 것이 중요합니다.

profile
안녕하세요:)

0개의 댓글