오라클 데이터베이스에서 개발이나 유지보수를 하다 보면, 테이블 이름을 바꿔야 하는 상황이 종종 발생합니다.
예를 들어 테스트용 테이블을 정식으로 전환하거나, 백업 테이블로 보존하는 등의 이유죠.
이 글에서는 Oracle SQL에서 테이블 이름을 변경하는 방법(RENAME)과 함께,
주의해야 할 사항, 그리고 연관 객체에 대한 처리 방법까지 실무 기준으로 정리해드립니다.
🔹 1. 오라클 테이블 이름 변경 기본 문법
오라클에서는 다음과 같은 SQL 구문으로 테이블 이름을 변경할 수 있습니다
RENAME old_table_name TO new_table_name;✅ 예제
RENAME employees_old TO employees;employees_old 테이블의 이름을 employees로 변경하는 명령어입니다.
🔹 2. 테이블 이름 변경 시 주의사항
⚠️ 변경은 같은 스키마(사용자) 내에서만 가능
다른 사용자(스키마)의 테이블은 직접 변경할 수 없습니다.
⚠️ 연관된 객체는 자동으로 변경되지 않음
- 뷰(View), 트리거(Trigger), 인덱스(Index), 저장 프로시저 등에서 테이블 이름을 참조하고 있을 경우, 이름 변경 후 에러가 발생할 수 있습니다.
- 예를 들어, 기존 테이블을 기반으로 만든 뷰는 무효(INVALID) 상태가 됩니다.
🔹 3. 무효 객체 확인 및 컴파일
테이블 이름을 바꾼 뒤, 다음 쿼리로 무효 상태인 객체를 확인할 수 있습니다
SELECT object_name, object_type, status
FROM user_objects
WHERE status = 'INVALID';무효 객체는 다음과 같이 재컴파일합니다
ALTER VIEW my_view COMPILE;
ALTER PROCEDURE my_proc COMPILE;🔹 4. 제약 조건 및 인덱스는 그대로 유지됨
테이블 이름이 바뀌어도 내부의 제약 조건 이름, 인덱스 이름, 트리거 이름은 자동으로 바뀌지 않습니다.
필요 시 수동으로 이름을 바꾸는 작업도 고려해야 합니다.
✅ 마무리 정리
오라클에서 테이블 이름을 바꾸는 일은 간단하지만, 참조하는 객체까지 고려해야 안정적인 시스템 운영이 가능합니다.
- ✅ RENAME 구문으로 간단히 이름 변경 가능
- ✅ 변경 후 관련 객체(INVALID 상태) 재확인 필요
- ✅ 실무에서는 신중하게 적용할 것
오라클 테이블 이름 변경이 필요할 때, 위 가이드를 참고해 안전하게 작업하시길 바랍니다.