BackEnd/DB(SQL)

[Oracle] 테이블 컬럼명, 데이터 타입, 길이 변경하는 방법 정리

bobo12 2025. 5. 30. 18:52
728x90

Oracle DB에서 테이블을 설계한 뒤, 실무에서 컬럼명을 바꾸거나 데이터 타입 및 사이즈를 수정해야 하는 경우가 자주 발생합니다. 이 글에서는 오라클에서 컬럼을 변경하는 다양한 방법에 대해 정리합니다.

 

 

✅ 1. 컬럼 이름 변경 (RENAME COLUMN)

컬럼명을 잘못 지정했거나, 좀 더 의미 있는 이름으로 바꾸고 싶을 때 사용합니다.

ALTER TABLE 테이블명
RENAME COLUMN 기존컬럼명 TO 새컬럼명;

 

📌 예시

ALTER TABLE EMPLOYEES
RENAME COLUMN ENAME TO EMP_NAME;

 

 

✅ 2. 컬럼 데이터 타입 변경

컬럼의 데이터 타입이나 "사이즈(길이)"를 변경할 때 사용합니다.

ALTER TABLE 테이블명
MODIFY (컬럼명 데이터타입);

 

📌 예시: VARCHAR2 길이 변경

ALTER TABLE EMPLOYEES
MODIFY (EMP_NAME VARCHAR2(100));

 

📌 예시: NUMBER 타입 변경

ALTER TABLE SALES
MODIFY (TOTAL_AMOUNT NUMBER(18, 2));

 

🛑 주의

  • 이미 들어있는 데이터가 새로운 데이터 타입을 수용하지 못하면 오류가 발생합니다.
  • 예: 기존 NUMBER(5,0) 컬럼에 100000이 들어있을 때 NUMBER(4,0)으로 변경 → ORA-01440 오류 발생

 

✅ 3. 컬럼 NULL/NOT NULL 제약 변경

-- NULL 허용으로 변경
ALTER TABLE 테이블명
MODIFY (컬럼명 데이터타입 NULL);

-- NOT NULL 제약 추가
ALTER TABLE 테이블명
MODIFY (컬럼명 데이터타입 NOT NULL);

 

📌 예시

ALTER TABLE EMPLOYEES
MODIFY (EMP_NAME VARCHAR2(100) NOT NULL);

 

✅ 4. 주의 사항

  • 컬럼명 변경은 단순하지만, 프로그램 코드, 뷰, 프로시저 등 종속 객체도 함께 수정해야 합니다.
  • 사이즈 축소, 타입 변경은 데이터 손실이 발생할 수 있으니 사전 백업이 필요합니다.
  • 컬럼명 변경은 오라클 9i 이상에서 지원됩니다.

 

 5. 컬럼 삭제 방법 (추가 팁) 

ALTER TABLE 테이블명
DROP COLUMN 컬럼명;

 

📌 예시

ALTER TABLE EMPLOYEES
DROP COLUMN TEMP_FIELD;

 

 

Oracle에서 컬럼을 수정하는 방법은 간단하지만, 시스템 전체에 영향을 줄 수 있습니다.
변경 전 반드시 다음 사항을 체크하세요.

  • 변경 대상 컬럼의 데이터 값
  • 컬럼을 참조하는 다른 객체(뷰, 프로시저 등)
  • 데이터 백업

💡 안전하게 변경하려면 테스트 환경에서 먼저 적용해 보는 것이 좋습니다.

728x90