[Oracle] 오라클 컬럼 사이즈 변경 방법 (Alter Table Modify)

오라클 데이터베이스에서 칼럼의 사이즈를 늘리거나 칼럼의 사이즈를 줄일 때는 ALTER TABLE MODIFY 명령을 사용하면 된다. 그러나 기존 데이터의 크기가 줄이려는 사이즈보다 큰 경우 오류가 발생할 수 있으며, 숫자(NUMBER) 칼럼의 소수점 길이를 늘일 때는 전체 길이도 함께 늘려야 정수부가 줄어들면서 발생하는 오류를 방지할 수 있다.

 

칼럼

 

컬럼 사이즈 변경 방법

-- 문자열: VARCHAR2(10) -> VARCHAR2(50)
ALTER TABLE emp MODIFY ename VARCHAR2(50);

-- 숫자: NUMBER(2) -> NUMBER(10)
ALTER TABLE emp MODIFY deptno NUMBER(10);

-- 소수점을 포함한 숫자: NUMBER(7,2) -> NUMBER(10,5);
ALTER TABLE emp MODIFY sal NUMBER(10,5);

 

 

ALTER TABLE [스키마명].[테이블명] MODIFY [컬럼명] [데이터타입(사이즈)]

위의 구문을 사용하여 칼럼 사이즈를 변경할 수 있다.

 

테이블 컬럼 데이터 타입, 사이즈 조회

SELECT table_name
     , column_name
     , data_type ||
       CASE WHEN data_type LIKE '%CHAR%'THEN
                '(' || data_length || ')'
            WHEN data_type = 'NUMBER' AND data_precision > 0 AND data_scale > 0 THEN
                '(' || data_precision || ',' || data_scale || ')'
            WHEN data_type = 'NUMBER' AND data_precision > 0 THEN
                '(' || data_precision || ')'
       END data_type
  FROM all_tab_columns
 WHERE table_name = 'EMP'

 

위의 쿼리문 외에도 DESC [테이블명] 명령을 사용하면 테이블 정보를 조회할 수 있다.(예, DESC emp )

 

컬럼 사이즈 변경 시 주의 사항

ALTER TABLE emp MODIFY ename VARCHAR2(5)
오류 보고 -
ORA-01441: 일부 값이 너무 커서 열 길이를 줄일 수 없음
01441. 00000 -  "cannot decrease column length because some value is too big"

 

위의 오류는 칼럼에 입력되어 있는 데이터 사이즈가 줄이려고 하는 사이즈 보다 큰 데이터가 존재할 경우 발생한다

SELECT *
  FROM emp
 WHERE LENGTH(ename) > 5

 

 

칼럼에 입력된 데이터 사이즈를 미리 확인 후 칼럼 사이즈를 변경하는 것이 좋다.

 

ALTER TABLE emp MODIFY sal NUMBER(7,5)
오류 보고 -
ORA-01440: 정도 또는 자리수를 축소할 열은 비어 있어야 합니다
01440. 00000 -  "column to be modified must be empty to decrease precision or scale"

 

위의 오류는 소수점 사이즈를 늘릴 때 주로 발생할 수 있는 오류이다.

 

 

소수점 길이를 늘 릴경우 정수부 길이가 줄어들기 때문에, 이미 입력된 정부수 사이즈가 큰 데이터가 존재하면 오류가 발생한다. 숫자 칼럼의 소수점 사이즈를 늘릴 때는 전체 길이도 같이 늘려주는 것이 좋다.

 

 

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

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

gent.tistory.com

 

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

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

gent.tistory.com

 

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

오라클 12c부터는 INVISIBLE 및 VISIBLE 칼럼 속성을 사용하여 칼럼의 순서를 변경할 수 있다. 이 방법은 기존 테이블의 구조를 변경하지 않고, 칼럼을 잠시 보이지 않게 설정했다가 다시 보이게 설정

gent.tistory.com

 

 

댓글

Designed by JB FACTORY