반응형
🌈 오라클 테이블 컬럼 순서 변경하기
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의 순서로 보여진다.
반응형
'Database > Oracle' 카테고리의 다른 글
[Oracle] 오라클 ROUND함수(소수점 반올림하기) (0) | 2022.11.17 |
---|---|
[Oracle] 오라클 삭제한 데이터 복구 방법 (0) | 2022.10.27 |
[DB] 웹에서 쿼리 실행하기(Oracle, Mysql, Mssql) (0) | 2022.08.23 |
[Oracle] 오라클 함수/프로시저 조회 방법(쿼리) (0) | 2022.04.11 |
[Oracle] ORA-01476: 제수가 0 입니다 (0) | 2022.02.23 |
최근댓글