oracle 11g expdp导出作业调用失败,提示丢包。

oracle 11g expdp导出作业调用失败,提示丢包。

win7 oracle版本

BANNER

--------------------------------------------------------------------------------

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

PL/SQL Release 11.2.0.1.0 - Production

CORE 11.2.0.1.0 Production

TNS for 32-bit Windows: Version 11.2.0.1.0 - Production

NLSRTL Version 11.2.0.1.0 - Production

3报错

C:\Users\Administrator>expdp his1/[email protected] DUMPFILE=HIS1.DMP DIRECTORY=DATA_DIR LOGFILE=HIS1.LOG

Export: Release 11.2.0.1.0 - Production on 星期一 11月 30 17:19:44 2020

Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.

连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

ORA-31626: 作业不存在

ORA-04063: package body "SYS.DBMS_INTERNAL_LOGSTDBY" 有错误

ORA-06508: PL/SQL: 无法找到正在调用 : "SYS.DBMS_INTERNAL_LOGSTDBY" 的程序单元

ORA-06512: 在 "SYS.KUPV$FT", line 991

ORA-04063: package body "SYS.DBMS_LOGREP_UTIL" 有错误

ORA-06508: PL/SQL: 无法找到正在调用 : "SYS.DBMS_LOGREP_UTIL" 的程序单元

尝试使用dba权限重编译包无效

ALTER  PACKAGE SYS.DBMS_INTERNAL_LOGSTDBY COMPILE;

ALTER PACKAGE SYS.DBMS_LOGREP_UTIL COMPILE;

oracle 11g expdp导出作业调用失败,提示丢包。

回答

出现这种情况的原因是因为

对于全局变量,每一个session会生成一个本地copy,如果程序重新编译的话,就会因程序里原变量找不到而丢弃该变量,继而导致这个错误。

也就是说在一个会话中调用程序包package时,会生成package中全局变量的副本,如果在另一个会话中对此package进行编译就会使前一个会话中的副本失效,故而产生错误。

要想避免这个错误,可以使程序捕获ORA-06508:的错误进行处理,也可以重新初始化会话

参考:https://blog.csdn.net/weiwangsisoftstone/article/details/44172955

以上是 oracle 11g expdp导出作业调用失败,提示丢包。 的全部内容, 来源链接: utcz.com/a/69618.html

回到顶部