执行DBMS_REDEFINITION报ORA-42030错误_cltt980248285的博客-程序员资料

【背景】今天在做一个SAP表VBRP的在线重定义,报了如下的错误,这个报错的原因很清晰,就是由于VBRP_NEW20161221的有些字段有问题导致数据插入不进去;

点击(此处)折叠或打开

  1. SQL> EXEC DBMS_REDEFINITION.START_REDEF_TABLE('SAPSR3', 'VBRP', 'VBRP_NEW20161221');
  2.     BEGIN DBMS_REDEFINITION.START_REDEF_TABLE('SAPSR3', 'VBRP', 'VBRP_NEW20161221'); END;
  3.     *
  4.     ERROR at line 1:
  5.     ORA-12008: error in materialized view refresh path
  6.     ORA-14400: inserted partition key does not map to any partition
  7.     ORA-06512: at "SYS.DBMS_REDEFINITION", line 56
  8.     ORA-06512: at "SYS.DBMS_REDEFINITION", line 1490
  9.     ORA-06512: at line 1


解决的方法也是很简单的,就是删除 VBRP_NEW20161221,然后修改下字段,再重新运行重定义即可。

点击(此处)折叠或打开

  1. drop materialized view log on VBRP


道理都懂,结果却错了一步,这个错误的时候应该先执行如下操作:

点击(此处)折叠或打开

  1. BEGIN
  2.     DBMS_REDEFINITION.ABORT_REDEF_TABLE(uname => 'SAPSR3',
  3.     orig_table => 'VRP',
  4.     int_table => 'VBRP_NEW20161221'
  5.     );
  6.     END


但是我却进行了物化视图和表的删除操作,当表修改完成之后,重新执行重定义的时候就报了ORA-42030的错误:

点击(此处)折叠或打开

  1. SQL> EXEC DBMS_REDEFINITION.START_REDEF_TABLE('SAPSR3', 'VBRP', 'VBRP_NEW20161221');
  2.     *
  3.     ERROR at line 1:
  4.     ORA-42030: cannot online redefine table "SAPSR3"."VBRP" with commit SCN-based
  5.     MV log
  6.     ORA-06512: at "SYS.DBMS_REDEFINITION", line 56
  7.     ORA-06512: at "SYS.DBMS_REDEFINITION", line 1490
  8.     ORA-06512: at line 1

【原因】因为删除了物化视图,但是当前表的物化视图日志还是存在的

点击(此处)折叠或打开

  1. SQL> SELECT LOG_OWNER,MASTER,LOG_TABLE FROM DBA_MVIEW_LOGS;
  2.     LOG_OWNER MASTER LOG_TABLE
  3.     ----------------------- ----------------- --------------------
  4.     SAPSR3 VBRP MLOG$_VBRP

【解决方法】找到问题后,原因很很简单,就是删除物化视图日志

重新执行就可以了,

点击(此处)折叠或打开

  1. SQL> BEGIN
  2.     DBMS_REDEFINITION.CAN_REDEF_TABLE('SAPSR3','VBRP',DBMS_REDEFINITION.CONS_USE_PK);
  3.     END;
  4.     / 2 3 4
  5.     PL/SQL procedure successfully completed.



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12679300/viewspace-2131177/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/12679300/viewspace-2131177/

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/cltt980248285/article/details/100443685

智能推荐

/boot独立分区扩容,解决/boot空间不足问题_boot空间不足怎么办_清风丶腾云的博客-程序员资料

前言装Ubuntu系统时,/boot分区只给了300M,之后由于/boot空间不足导致更新系统失败。下面是解决方案。参考链接https://blog.sciencenet.cn/blog-747197-772653.html操作步骤用Ubuntu自带disk查看/boot分区配置点击/boot分区下面小齿轮图标,选择Edit Mount Options,记下/boot分区配置,点击后界面如下:然后把"Mount at startup"取消,把“Mount point”改一下,比如/boo

JAVA7所有版本下载地址 JRE jre jdk JDK_zt3871的博客-程序员资料

http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html

bash 中文乱码,无法输入中文_bash 无法输入中文_Mooney安的博客-程序员资料

环境win10centos7mobaxterm问题描述git commit ""时,输入中文乱码,或显示不了解决办法1、输入locale,查看支持的所有编码locale2、修改export LANG=zh_CN.GBK检查修改localeok,再次输入时,问题解决...

Django 前后端分离实战项目 生鲜超市(十四)之支付宝接入_qq_39682037的博客-程序员资料

支付宝接入要求Package Versioncertifi 2020.4.5.1chardet 3.0.4coreapi 2.3.1coreschema 0.0.4Django 1.11.3...

随便推点

GCD处理多线程同步操作 韩俊强的博客_gcd 子线程同步_韩俊强的博客-程序员资料

原文地址: http://blog.csdn.net/qq_31810357/article/details/78906308 未经许可,严禁转载!GCD使用 dispatch_group_notify、dispatch_group_enter、dispatch_group_leave处理多线程同步操作一、简介dispatch_group_enter:通知group,下面的任务马上要放到group中

CSS压缩与优化工具 ,JS压缩工具_fer_ba的博客-程序员资料

 CSS压缩与优化工具 http://feiyu.asgard.cn/csstidy/  JS Minified - JS压缩工具http://feiyu.asgard.cn/article_151.html JSPacker v3.0 - JS压缩工具http://feiyu.asgard.cn/article_135.

多表查询。笛卡尔积查询,内连接,外连接_inner join 子查询 笛卡尔积_种向日葵的小仙女的博客-程序员资料

如果想查询出每个部门,和每个部门对应的员工的名字。(dept,emp两张表)。图1笛卡尔积查询笛卡尔积查询:将两张表的记录进行一个相乘的操作查询出来的结果就是笛卡尔积查询,如果左表有n条记录,右表有m条记录,笛卡尔积查询出有n*m条记录,其中往往包含了很多错误的数据,所以这种查询方式并不常用。select * from dept,emp;图2内连接查询 内连接查询:查询的是左边表和右边表都能找到对...

linux目录权限影响文件,Linux下的文件、目录权限_新littleant的博客-程序员资料

对于Linux的初学者来说,熟悉了Windows下的文件类型,接触到Linux的下的文件类型是有所区别的。如Windows的:而Linux下:你会发现Linux下前面的几列不同如drwxr-xr-x. 2 root root,这又代表的什么?下面我们来说说Linux的文件权限......一 、文件的属性1. 文件的权限:文件的权限主要针对三类对象进行定义:owner: 属主, ugroup: 属...

linux下安装qt教程_linxu 打开[email protected]的博客-程序员资料

环境:ubuntu16.04qt:5.5.1一.安装qt1.下载 Qt Creator:(1)可以在linux下载 Qt Creator,运行如下命令:wget http://download.qt.io/new_archive/qt/5.5/5.5.1/qt-opensource-linux-x64-5.5.1.run(2)可以在windows下从官网下载好 Qt Creator后,复制到linux下。(3) 下载好后的Qt Creator如图所示:2.安装Qt Creator(1)

推荐文章

热门文章

相关标签