반응형
* 오라클 테이블 컬럼의 순서를 변경한다.
* 오라클 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 ]
그리드형
'IT > DB' 카테고리의 다른 글
[ORACLE] 오라클 ROUND, TRUNC (소수점 반올림, 버림) (0) | 2021.09.10 |
---|---|
[ORACLE] 오라클 ORA-01489 에러 LISTAGG 길이 초과 시 해결 방법 (0) | 2021.08.20 |
[ORACLE] 오라클 문자열 붙이기 / WM_CONCAT / LISTAGG (0) | 2021.08.20 |
[ORACLE] 자주보는 오라클 에러 모음 / ORA-에러코드 모음 (0) | 2021.08.20 |
[ORACLE] 오라클 DDL ALTER 문(컬럼명/타입 변경,코멘트 추가,디폴트 추가,CLOB 변경) (0) | 2021.08.20 |
댓글