본문 바로가기
IT/DB

[ORACLE] 오라클 테이블 컬럼 순서 변경

by 스터딩아재 2021. 8. 20.
반응형

 

 

* 오라클 테이블 컬럼의 순서를 변경한다.

* 오라클 12c 이상이면 쉬운데, 11g 이하면 꼭 해야 되는 거 아니면 안 하는 게 낫다.

 


1. 컬럼 순서 변경(오라클 12c 이상)

* COL A, C, D, B 순서에서 A, B, C, D로 바꾸고 싶다. 

 

-- 초기 컬럼 순서
> COL [ A C D B ]

-- 뒤로 보낼 컬럼을 우선 숨김 처리한다.
ALTER TABLE 테이블명 MODIFY COL_C INVISIBLE;
ALTER TABLE 테이블명 MODIFY COL_D INVISIBLE;

> COL [ A B ]

-- 다시 순서대로 보이도록 한다.
ALTER TABLE 테이블명 MODIFY COL_C VISIBLE;
ALTER TABLE 테이블명 MODIFY COL_D VISIBLE;

> COL [ A B C D ]

 

* 12c 이상에선 참 쉽다.

 

 

2. 컬럼 순서 변경(오라클 11g 이하)

* 11g이하에서 위 SQL 실행 시 ORA-22858 오류가 난다.

* 11g이하에서는 테이블을 삭제하고 다시 만들어야 된다. 문제는 PK, INDEX, FK 등 스키마에서 조회되는 모든 정보가 같이 삭제된다.

* 순서따위 나 같으면 안 바꾸고 만다. 순서 바꾸기 전에 오라클 버전을 바꾸지. 그래도 혹시 모르니 써놓자. 고객이 하라면 해야지.

 

-- 초기 컬럼 순서
> COL [ A C D B ]

-- 테이블 생성
CREATE TABLE 새테이블명 AS
  SELECT COL_A, COL_B, COL_C, COL_D -- 여기서 순서 정상화
  FROM   기존테이블명;
  
-- 기존테이블 삭제
DROP TABLE 기존테이블명;

-- 테이블명 변경
RENAME 새테이블명 TO 기존테이블명;

> COL [ A B C D ]

 

그리드형

댓글