[Oracle小经验]解决由于物化视图日志导致的不能进行表重命名【转贴项目组数据库工程师】

背景:
系统组兄弟相对一个Oracle普通用户表进行重命名,理论上是可以操作的。
在执行过程中报错,考虑到有些表间约束可能限制了操作,因此建议解除相关限制,例如物化视图,表间调用等
 
oracle10@emipkf00:[/export/home1/oracle10]sqlplus "/as sysdba"
SQL*Plus: Release 10.2.0.3.0 - Production on Wed Sep 23 14:02:33 2009
Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
SQL> conn eos52/eos52
Connected.
SQL> alter table EOS52.TBL_COMM_COMMONTICKET rename to TBL_COMM_COMMONTICKET_B1;
alter table EOS52.TBL_COMM_COMMONTICKET rename to TBL_COMM_COMMONTICKET_B1
*
ERROR at line 1:
ORA-26563: renaming this table is not allowed
SQL> 
SQL> conn / as sysdba
Connected.
SQL> 
SQL> SELECT MASTER, LOG_TABLE FROM DBA_MVIEW_LOGS WHERE LOG_OWNER ='EOS52'; /*查找物化视图日志记录*/
MASTER                         LOG_TABLE
------------------------------ ------------------------------
EOSOPERATOR                    MLOG$_EOSOPERATOR
EOSOPERATORROLE                MLOG$_EOSOPERATORROLE
EOSORG_T_EMPLOYEE              MLOG$_EOSORG_T_EMPLOYEE
EOSORG_T_EMPPOSITION           MLOG$_EOSORG_T_EMPPOSITION
EOSORG_T_ORGANIZATION          MLOG$_EOSORG_T_ORGANIZATIO
EOSORG_T_POSITION              MLOG$_EOSORG_T_POSITION
EOSROLE                        MLOG$_EOSROLE
TBL_COMM_COMMONTICKET          MLOG$_TBL_COMM_COMMONTICKE
TBL_COMM_COMMONTICKET_C        MLOG$_TBL_COMM_COMMONTICKE1
TBL_COMM_PARTICIPANT           MLOG$_TBL_COMM_PARTICIPANT
TBL_COMM_PROC_STATUS           MLOG$_TBL_COMM_PROC_STATUS
MASTER                         LOG_TABLE
------------------------------ ------------------------------
TBL_COMM_REPORT_TICKETTIMEOUT  MLOG$_TBL_COMM_REPORT_TICK
TBL_COMM_STATUSREG             MLOG$_TBL_COMM_STATUSREG
TBL_TSCL_ACTIVITYDEF_ROLE      MLOG$_TBL_TSCL_ACTIVITYDEF
TBL_TSCL_COMMTICKET            MLOG$_TBL_TSCL_COMMTICKET
TBL_TSCL_DEAL                  MLOG$_TBL_TSCL_DEAL
TBL_TSCL_DEALLOG               MLOG$_TBL_TSCL_DEALLOG
TBL_TSCL_DEAL_H                MLOG$_TBL_TSCL_DEAL_H
TBL_TSCL_ROLECLASS             MLOG$_TBL_TSCL_ROLECLASS
TBL_TSCL_TICKET                MLOG$_TBL_TSCL_TICKET
TBL_TSCL_TIDEALINFO            MLOG$_TBL_TSCL_TIDEALINFO
TBL_TYGZ_AFFIRM                MLOG$_TBL_TYGZ_AFFIRM
MASTER                         LOG_TABLE
------------------------------ ------------------------------
TBL_TYGZ_AFFIRM_C              MLOG$_TBL_TYGZ_AFFIRM_C
TBL_TYGZ_AUDITINGINFO          MLOG$_TBL_TYGZ_AUDITINGINF
TBL_TYGZ_AUDITINGINFO_C        MLOG$_TBL_TYGZ_AUDITINGINF1
TBL_TYGZ_REPLY                 MLOG$_TBL_TYGZ_REPLY
TBL_TYGZ_REPLY_C               MLOG$_TBL_TYGZ_REPLY_C
TBL_TYGZ_SIGNINFO              MLOG$_TBL_TYGZ_SIGNINFO
TBL_TYGZ_SIGNINFO_C            MLOG$_TBL_TYGZ_SIGNINFO_C
TBL_TYGZ_SQ_INFO               MLOG$_TBL_TYGZ_SQ_INFO
TBL_TYGZ_SQ_INFO_C             MLOG$_TBL_TYGZ_SQ_INFO_C
TBL_TYGZ_TICKETINFO            MLOG$_TBL_TYGZ_TICKETINFO
TBL_TYGZ_TICKETINFO_C          MLOG$_TBL_TYGZ_TICKETINFO_
MASTER                         LOG_TABLE
------------------------------ ------------------------------
TBL_WLSJGL_COMMTICKET          MLOG$_TBL_WLSJGL_COMMTICKE
TBL_WLSJGL_DEAL                MLOG$_TBL_WLSJGL_DEAL
TBL_WLSJGL_SUB_TASKINFO        MLOG$_TBL_WLSJGL_SUB_TASKI
TBL_WLSJGL_TICKET              MLOG$_TBL_WLSJGL_TICKET
37 rows selected.
SQL> select * from dba_objects where OBJECT_NAME like '%MLOG$_TBL_COMM_COMMONTICKE%';/*查看是否存在真正的DBA对象*/
OWNER
------------------------------
OBJECT_NAME
--------------------------------------------------------------------------------
SUBOBJECT_NAME                  OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE
------------------------------ ---------- -------------- -------------------
CREATED      LAST_DDL_TIM TIMESTAMP           STATUS  T G S
------------ ------------ ------------------- ------- - - -
EOS52
MLOG$_TBL_COMM_COMMONTICKE1
                                    78204          78204 TABLE
28-APR-09    28-APR-09    2009-04-28:18:03:12 VALID   N N N
SQL> 
SQL> 
SQL> 
SQL> 
SQL> conn eos52/eos52
Connected.
SQL> drop materialized view log on TBL_COMM_COMMONTICKET;/*到所在用户下,丢弃物化视图日志*/
Materialized view log dropped.
SQL> 
SQL> rename TBL_COMM_COMMONTICKET to TBL_COMM_COMMONTICKET_B1; /*即可重命名表*/
Table renamed.
SQL> 
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值