oracle expdp导出报错,提示package不能调用

Posted 老杜随笔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle expdp导出报错,提示package不能调用相关的知识,希望对你有一定的参考价值。

  oracle 10.2.0.1数据库expdp导出数据报错,提示SYS.DBMS_INTERNAL_LOGSTDBY package

不能被调用


查看package状态显示无效,重新编译包报错,提示依赖的table或view不存在

oracle expdp导出报错,提示package不能调用


进一步查看编译此包所依赖的对象有哪些是不存在的,查询如下:

  根据以上查询结果,显示对象LOGSTDBY$SKIP_SUPPORT不存在,

 在数据库里确认此表确实不存在。查找mos发现此表可以重建,建表语句 如下:

create table system.logstdby$skip_support (                                      
  action          number not null,    /* number as seen in sys.audit_actions */  
                   /* reserving actions 0 & -1 for internal skip schema list */  
  name            varchar2(30) not null,         /* action to skip or schema */  
  spare1          number,                                /* Future expansion */  
  spare2          number,                                /* Future expansion */  
  spare3          varchar2(2000)                         /* Future expansion */  
) tablespace SYSAUX;


     重建LOGSTDBY$SKIP_SUPPORT此表后,

 再次编译 SYS.DBMS_INTERNAL_LOGSTDBY包, 

成功编译。最后测试expdp导出成功 。

但为什么内部表LOGSTDBY$SKIP_SUPPORT不存在,

具体原因未知。

处理过程中还发现一个oracle bug,MOS文档ID 465737.1

Example:


大概的意思是,一个普通用户默认表空间为users,当赋予这个用户dba权限再回收后,这个用户就没有了使用表空间users的权限,需要再次授权resource权限才可以使用users表空间(grant resource to xxxx )。



以上是关于oracle expdp导出报错,提示package不能调用的主要内容,如果未能解决你的问题,请参考以下文章

记oracle使用expdp将数据导出到asm报错

oracle expdp导出报错“字符串缓冲区太小”

用expdp导出报错求教ORA-39126,ORA-01555

expdp导出报错ORA-39002ORA-39070解决办法

expdp/impdp 数据泵导入导出

一个简单的expdp导出UDE-31623 ORA-31623