오라클 데이터베이스에서 개발이나 유지보수를 하다 보면, 테이블 이름을 바꿔야 하는 상황이 종종 발생합니다.

예를 들어 테스트용 테이블을 정식으로 전환하거나, 백업 테이블로 보존하는 등의 이유죠.

이 글에서는 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 상태) 재확인 필요
  • ✅ 실무에서는 신중하게 적용할 것

오라클 테이블 이름 변경이 필요할 때, 위 가이드를 참고해 안전하게 작업하시길 바랍니다.