티스토리 뷰

IT/DB

[오라클]컬럼 순서 변경하기

Kanzler 2016. 11. 5. 10:58

이번 포스팅에서는 오라클에서 디비의 컬럼 순서를 변경 하는 방법에 대해서 알아보도록 하겠습니다. 디비를 운영하다 보면 처음 설계한 테이블의 컬럼의 순서를 변경 해야 하는 경우가 있습니다.  원칙적으로 오라클에서는 이런 상황에서 컬럼의 변경을 할 수 있는 수단을 제공 해 주고 있지 않습니다. 지금부터 설명 할려는 방법은 실제 테이블의 컬럼을 변경 하는 것이 아니라 테이블의 데이터를 임시 테이블에 복사 한후 새로 컬럼 순서를 변경 한 테이블을 생성 하여 임시 테이블에 있는 데이터를 새 테이블로 옮겨 마치 컬럼의 순서가 변경 되어 있는 것으로 하는 일종의 꼼수(?)인 방법 입니다. 


※이 방법은 임시 테이블의 생성 후 복사/붙여넣기를 하는 식이기 때문에 테이블에 데이터가 많은 경우 문제가 발생 할 수 있습니다.  반드시 테이블의 데이터 량에  따라 적용 유무를 판단 하셔야 합니다.


테이블 생성


1
2
3
4
5
6
7
8
CREATE TABLE member(
no NUMBER PRIMARY KEY,
phone VARCHAR2 (16),
name VARCHAR2 (32)
);
INSERT INTO member VALUES (100'010-1234-5678''홍길동');
INSERT INTO member VALUES (200'02-1234-5678''갑돌이');
INSERT INTO member VALUES (300'010-987-6543''아무개');
cs


변경 전

1
2
3
4
5
6
SELECT * FROM member;
 
NO    PHONE           NAME
100   010-1234-5678   홍길동
200   02-1234-5678    갑돌이
300   010-987-6543    아무개
cs


변경 작업 (임시 테이블로 데이터 이동 후 새 테이블 생성후 임시 테이블 데이터 이전)

1
2
3
CREATE TABLE temp AS SELECT no, name, phone FROM member;
DROP TABLE member;
RENAME temp TO member;
cs

변경 후 

1
2
3
4
5
6
SELECT * FROM member;
 
NO    NAME    PHONE            
100   홍길동   010-1234-5678    
200   갑돌이   02-1234-5678    
300   아무개   010-987-6543    
cs


댓글