Oracle DB 에서 Table, View, Sequence, Private Synonym 의 이름변경시에는 "rename ~ to" 구문을 사용할 수 있습니다.
SQL> rename TAB1 to TAB2;
SQL> rename VIEW1 to VIEW2;
SQL> rename SEQ_TEMP1 to SEQ_TEMP2;
SQL> rename SYN_TAB1 to SYN_TAB2;
-- Synonym은 Private Synonym 만 가능하고, Public Synonym 은 안됩니다.
Table 의 경우에는 "alter table ..." 구문으로도 이름 변경이 가능합니다.
SQL> alter table TAB1 rename to TAB2;
Table 의 경우는, 위 2가지 방법이 모두 가능한데,
Index 의 경우에는 "alter index ..." 구문으로만 이름 변경이 가능합니다.
SQL> alter index IX1_TAB1 rename to IX2_TAB2;
테이블, 인덱스, 뷰 등 객체의 이름을 변경할 때는 반드시 해당 소유 유저에서 해야 합니다.
sys 나 system 유저권한으로도 다른 유저의 객체 이름을 변경할 수는 없습니다.
sys 유저에서 다른 유저의 테이블을 변경하려고 하면 아래와 같이 ORA-14047 또는 ORA-01765 에러가 발생합니다.
SQL> conn / as sysdba
Connected.
SQL> alter table scott.TAB1 rename to scott.TAB2;
alter table scott.TAB1 rename to scott.TAB2
*
ERROR at line 1:
ORA-14047: ALTER TABLE|INDEX RENAME may not be combined with other operations
SQL>
SQL> rename scott.TAB1 to scott.TAB2;
rename scott.TAB1 to scott.TAB2
*
ERROR at line 1:
ORA-01765: specifying owner's name of the table is not allowed
음~ 다시 확인해보니, sys 유저에서 전부 다 안되는 건 아니고, alter table ~ rename to ~ 의 경우 scott. 을 빼면 되기는 하네요~
'IT관련' 카테고리의 다른 글
오라클 정규식, 정규표현식(Regular Expression) 이란? 그리고 사용방법. (0) | 2020.12.09 |
---|---|
오라클 PL/SQL 함수(Function) 병렬처리 옵션 (parallel_enable) (0) | 2020.12.09 |
ORA-600, ORA-7445 등 Internal 에러 분석할때 필요한 정보수집 TFA툴 소개 (0) | 2020.12.05 |
오라클 에러 (ORA-00998: must name this expression with a column alias) (0) | 2020.12.01 |
오라클 에러 정보 (ORA-06532, ORA-06533) - PL/SQL에서 Arrary(배열) 범위를 벗어난 경우 (0) | 2020.12.01 |