반응형

 

 

 

 

 

🌈 오라클 테이블 컬럼 순서 변경하기

 

 

 

1️⃣ Oracle 11G 이하

Oracle 11G에서는 컬럼의 테이블 순서를 변경하기 위해서는 테이블을 삭제하고 다시 생성해 주어야 한다.

 

따라서 컬럼 순서의 변경이 정말로 필요한 경우가 아니라면 권장하지 않는 방법이며, 보통 테이블의 마지막에 새로운 컬럼을 추가하는 편이다.

 

그리고 테이블을 삭제(DROP)하고 다시 생성할 경우에 기존에 만들었던 PK, INDEX, FK 등의 제약조건이 모두 삭제되므로 백업 후 재생성해야하는 번거로움이 있다.

 

VIEW, SYNONYM, PROCEDURE, FUNCTION, TRIGGER등은 테이블을 재생성해도 유지된다.

 

-- 기존 컬럼순서 : A C D B

/*  1) 테이블 생성 : 변경할 컬럼 순서대로 SELECT 후 생성  */
CREATE TABLE 신규테이블 AS
  SELECT A
       , B
       , C
       , D 
  FROM 기존테이블;
  
/*  2) 기존테이블 삭제  */
DROP TABLE 기존테이블;

/*  3) 테이블명 변경  */
RENAME 신규테이블 TO 기존테이블;

 

 

2️⃣ Oracle 12C 이상

Oracle 12G 이상에서는 컬럼의 INVISIBLE, VISIBLE 속성을 이용하여 순서를 변경할 수 있다.

 

INVISIBLE 할 경우에는 SELECT 시 컬럼이 숨겨지게되며, VISIBLE 할 경우에는 SELECT시 다시 컬럼이 보이고 컬럼의 순서가 마지막으로 변경된다. 따라서 테이블을 재생성할 필요가 없고, 제약조건 역시 그대로 유지된다.

 

-- 기존 컬럼순서 : A C D B

/*  1) 뒤로 보낼 컬럼을 숨김 처리한다.  */
ALTER TABLE 테이블명 MODIFY C INVISIBLE;
ALTER TABLE 테이블명 MODIFY D INVISIBLE;
----> SELECT시 A, B 두 개의 컬럼만 조회된다.


/*  2) 숨긴 컬럼을 순서대로 보이도록 한다.  */
ALTER TABLE 테이블명 MODIFY C VISIBLE;
ALTER TABLE 테이블명 MODIFY D VISIBLE;
----> SELECT시 A, B, C, D의 순서로 보여진다.

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기