[Oracle] 오라클 컬럼 순서 변경 방법 (INVISIBLE, VISIBLE)

오라클 12c부터는 INVISIBLE 및 VISIBLE 칼럼 속성을 사용하여 칼럼의 순서를 변경할 수 있다. 이 방법은 기존 테이블의 구조를 변경하지 않고, 칼럼을 잠시 보이지 않게 설정했다가 다시 보이게 설정하여 칼럼의 순서를 변경하는 원리이다. 그리고 오라클 11g 이하에서 칼럼의 순서를 변경하기 위해서는 테이블을 재생성하는 방법을 사용해야 하며, 특별한 경우가 아니면 권장하지는 않는다.

 

목차

 

오라클 12c 이상에서 칼럼 순서 변경 방법

 

오라클 12c 이상부터 INVISIBLE, VISIBLE 속성을 사용하여 칼럼의 순서를 쉽게 변경할 수 있다.

 

칼럼을 숨겼다가 다시 보이게 하면 칼럼의 순서가 뒤로 옮겨지는 원리이다. 중간의 칼럼을 맨뒤로 바꾸고 싶을 때는 해당 칼럼을 INVISIBLE 했다가 다시 VISIBLE로 바꾸면 해당 칼럼의 순서가 맨 마지막으로 변경된다.

 

--칼럼 숨기기 (INVISIBLE)
ALTER TABLE emp MODIFY job INVISIBLE;
ALTER TABLE emp MODIFY mgr INVISIBLE;
ALTER TABLE emp MODIFY hiredate INVISIBLE;
ALTER TABLE emp MODIFY sal INVISIBLE;
ALTER TABLE emp MODIFY comm INVISIBLE;
ALTER TABLE emp MODIFY deptno INVISIBLE;

--칼럼 보이기 (VISIBLE)
ALTER TABLE emp MODIFY job VISIBLE;
ALTER TABLE emp MODIFY mgr VISIBLE;
ALTER TABLE emp MODIFY hiredate VISIBLE;
ALTER TABLE emp MODIFY sal VISIBLE;
ALTER TABLE emp MODIFY comm VISIBLE;
ALTER TABLE emp MODIFY deptno VISIBLE;

 

 

테이블의 구조를 바꾸지 않고도 칼럼의 순서가 변경된 것을 확인할 수 있다.

 

오라클 11g 이하에서 칼럼 순서 변경 방법

CREATE TABLE emp_temp AS
SELECT empno
     , ename
     , job_id
     , job
     , mgr
     , hiredate
     , sal
     , comm
     , deptno 
  FROM emp;

 

오라클 11g 이하에서는 칼럼의 순서를 변경하기 위해서는 기존 테이블을 삭제하고 다시 생성해야 한다.

 

CREATE TABLE AS SELECT 구문을 사용하면 SELECT 절의 칼럼 형식을 그대로 복사해서 테이블을 생성하고, 데이터도 그대로 복사하기 때문에 쉽게 테이블을 생성할 수 있다.

 

 

 

임시 테이블(emp_temp)이 원하는 칼럼의 순서로 생성된 것을 확인할 수 있다.

 

--원본 테이블 삭제
DROP TABLE emp;

--임시 테이블명을 원본 테이블명으로 변경 (emp_temp -> emp)
RENAME emp_temp TO emp;

 

 

원본 테이블을 삭제하고, 임시 테이블명을 원본 테이블과 동일하게 변경하면 된다. 

칼럼의 순서를 변경하기 위해서 테이블을 재생성하는 건 특별한 경우가 아니면 권장하지 않는다.

 

테이블 삭제(DROP) 시 PK, INDEX, 제약조건 등 함께 삭제가 되니, 꼭 백업 후 재생성을 해야 한다.
VIEW, SYNONYM, STORED PROCEDURE, FUNCTION, TRIGGER 등은 삭제되지 않는다.

 

 

[Oracle] 오라클 컬럼 추가, 삭제 방법 (ALTER TABLE)

오라클 테이블에 컬럼을 추가하기 위해서는 ALTER TABLE을 사용한다. 컬럼을 추가하면 테이블 컬럼의 마지막 순서에 추가가 되며, 컬럼 순서의 중간에 컬럼을 추가할 수는 없다. 오라클 12c 부터는

gent.tistory.com

 

[Oracle] 오라클 컬럼명, 데이터타입 등 변경 방법

오라클에서 컬럼을 변경 할 경우 ALTER TABLE를 사용하며, 컬럼의 데이터 타입, 길이를 수정할 때는 MODIFY, 컬럼명을 수정할 때는 RENAME COLUMN을 사용하면 된다. 컬럼 데이터 타입 변경 --데이터 타입

gent.tistory.com

 

 

댓글

Designed by JB FACTORY