重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 416|回复: 1

[升级] oracle手动升级,出现ORA-06512: at "WMSYS.OWM_VSCRIPT_PKG"

[复制链接]
发表于 2020-12-4 09:45:17 | 显示全部楼层 |阅读模式
本帖最后由 王亮 于 2020-12-4 09:50 编辑

oracle 11.2.0.4在手动升级到19.3时,数据库,在升级过程中,出现ORA-06512: at "WMSYS.OWM_VSCRIPT_PKG", line 4074 ORA-06512: at line 2的错误。
99715fc9948f694d7.png
查个对应的wmsys.wm$migration_error_view视图,内容如下:
299405fc994aa9dc33.png
是往WMSYS.WM$RIC_TRIGGERS_TABLE表中插入数据报错。
根据错误,在MOS查到一篇相关的文档得知原因可能是工作区管理器元数据中存在不一致,WMSYS.WM$RIC_TRIGGERS_TABLE包含一些不必要的行。
可以使用下面这个SQL查询
select pt_owner, pt_name, ct_owner, ct_name
from wmsys.wm$ric_triggers_table
where (pt_owner, pt_name, ct_owner, ct_name) not in (select pt_owner, pt_name, ct_owner, ct_name from wmsys.wm$ric_table);

为了保证升级破功,MOS中建议在升级,先提前删除WMSYS中不必要的行。语句如下:
delete wmsys.wm$ric_triggers_table
where (pt_owner, pt_name, ct_owner, ct_name) not in (select pt_owner, pt_name, ct_owner, ct_name
  from wmsys.wm$ric_table);



如果已经在升级,在升级前也未对WMSYS中的数据进行处理,可以使用下面的语句进行修复
declare
  n number ;
begin
  for c in (select distinct pt_owner, pt_name, ct_owner, ct_name from wmsys.wm$ric_table) loop
  n := wmsys.wm$up_del_trig_name_sequence.nextval ;
  insert into wmsys.wm$ric_triggers_table values(c.pt_owner, c.pt_name, c.ct_owner, c.ct_name, n, n) ;
end loop ;
end;
/

alter trigger wmsys.no_vm_ddl disable;
execute wmsys.ltric.recreatePtUpdDelTriggers;
execute wmsys.ltadm.enableSystemTriggers(true);



回复

使用道具 举报

发表于 2020-12-7 10:10:01 | 显示全部楼层
11g升级到12c以上,包含19c,都可能存在该问题吧
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2021-2-25 02:12 , Processed in 0.149903 second(s), 24 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表