Oracle报错ORA-26563--当重命名表时碰到物化视图
https://www.toutiao.com/i6739137279115133447/
原创 波波说运维 2019-09-26 00:02:00
概述
rename的时候如果碰到这个表有物化视图会提示ORA-26563错误,如果按网上解决办法是drop materialized view log on TBL_COMM_COMMONTICKET; 那重命名后会有影响吗?会不会不产生物化视图日志?网上很多只是告诉你删除物化视图日志就可以了,但是如果删除后是会影响物化视图的,所以网上的内容还是要保持一份怀疑,最好自己测试一下。
报错截图
思路
如果在重命名Oracle表的时候出现ORA-26563: 不允许重命名此表错误,试着将表上的物化视图日志drop就可以了。
1、查看物化视图日志
2、查看是否存在对象
3、保存物化视图对象定义
-- Create table
create table MLOG$xx
(
M_ROW$$ VARCHAR2(255),
SNAPTIME$$ DATE,
DMLTYPE$$ VARCHAR2(1),
OLD_NEW$$ VARCHAR2(1),
CHANGE_VECTOR$$ RAW(255),
XID$$ NUMBER
)
tablespace DATA
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 1
next 1
minextents 1
maxextents unlimited
pctincrease 0
);
-- Add comments to the table
comment on table MLOG$xxx
is ‘snapshot log for master table GLOGOWNER.xxx‘;
4、删除物化视图日志并重命名表
5、重建物化视图日志
记得重建回来!
6、刷新物化视图
select * from user_objects where object_type=‘MATERIALIZED VIEW‘ and object_name like ‘%FSL_TRUNK%‘;
exec dbms_mview.refresh(‘MV_OTM_FSL_TRUNKSHIPMENT_DE‘,‘C‘);
觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~