DBMS/CUBRID

[CUBRID][타입 변환] CLOB -> VARCHAR

youn12 2020. 11. 16. 12:59
✏️ Info.

- CLOB 타입 컬럼을 VARCHAR로 변환할 수 없기 때문에 테이블 임시 컬럼 생성 후 타입 변환

📋 List.

1. CLOB 타입 컬럼 조회
2. 임시 컬럼 생성 (변환할 타입으로 생성, ex Varchar)
3. 임시 컬럼으로 데이터 이동
4. CLOB 컬럼 삭제
5. Varchar 컬럼 생성 (기존 CLOB 컬럼 이름)
6. 임시 컬럼 -> Varchar 컬럼 데이터 이동
7. 임시 컬럼 삭제
8. 사용 예

✔️ Content.

 

 

1. CLOB 타입 컬럼 조회

 

SELECT	ATTR_NAME
	,CLASS_NAME
        ,DATA_TYPE        
FROM	DB_ATTRIBUTE
WHERE	DATA_TYPE = 'CLOB';

 

CLOB 타입 컬럼 조회

  • ATTR_NAME : 컬럼명
  • CLASS_NAME : 테이블명
  • DATA_TYPE : 컬럼 타입

2. 임시 컬럼 생성 (변환할 타입으로 생성, ex Varchar)

 

  •  CLOB 컬럼 데이터를 임시 저장할 컬럼({temp_column}) 생성
ALTER TABLE {table} ADD {temp_column} VARCHAR;

3. 임시 컬럼으로 데이터 이동

 

  • CLOB 컬럼({clob_column}) 데이터 임시 컬럼({temp_column})으로 이동
UPDATE	{table}
SET	{temp_column} = {clob_column};

4. CLOB 컬럼 삭제

 

  • CLOB 컬럼({clob_column}) 삭제
ALTER TABLE {table} DROP COLUMN {clob_column};

5. Varchar 컬럼 생성 (기존 CLOB 컬럼 이름)

 

  • 삭제한 CLOB 컬럼의 이름({clob_column})으로 VARCHAR 컬럼({clob_column}) 생성
ALTER TABLE {table} ADD COLUMN {clob_column} VARCHAR;

6. 임시 컬럼 -> Varchar 컬럼 데이터 이동

 

  • VARCHAR 컬럼({clob_column})으로 임시 컬럼({temp_column}) 데이터 이동
UPDATE	{table}
SET	{clob_column} = {temp_column};

7. 임시 컬럼 삭제

  • 임시 컬럼({temp_column}) 삭제
ALTER TABLE {table} DROP COLUMN {temp_column};

8. 사용 예

 

 

  • 변환 작업 중 변경해야 할 컬럼이 한 개가 아니어서 조회된 내역을 엑셀로 출력 후 일괄 변경할 수 있게 Query 문을 작성하였다.

 

Excel 일괄 처리

  •  - 'Query 문'에 사용된 함수
=CONCATENATE("ALTER TABLE "&B2&" ADD TEMP_COLUMN VARCHAR;
		UPDATE "&B2&" SET TEMP_COLUMN = "&A2&";
		ALTER TABLE "&B2&" DROP COLUMN "&A2&";
		ALTER TABLE "&B2&" ADD COLUMN "&A2&" VARCHAR;
		UPDATE "&B2&" SET "&A2&" = TEMP_COLUMN;
		ALTER TABLE "&B2&" DROP COLUMN TEMP_COLUMN;")

 

'DBMS > CUBRID' 카테고리의 다른 글

[CUBRID] Excel 개행 문자 마이그레이션  (0) 2021.04.08
[CUBRID] Cubrid server start - FATAL ERROR  (0) 2021.03.18
[CUBRID] Table, Column Comment 작성  (0) 2021.01.06