项目上需要使用job在每月月初重置序列,在我本机的Oracle上创建job成功了,但在项目的测试平台上创建却报了ORA-04063的错误,详见下图:
在网上搜索,有人说要重新编译DBMS_INTERNAL_LOGSTDBY这个包体,尝试了一下,编译后还是有错。
在PL/SQL中查看DBMS_INTERNAL_LOGSTDBY,发现其依赖的视图“DBA_LOGSTDBY_PROGRESS”有错误,打开“DBA_LOGSTDBY_PROGRESS”的DDL语句并执行,报“找不到system.logmnr_session$”的错误:
经过查找发现system用户下的确没有logmnr_session$这张表,于是我
从其他数据库拷贝system.logmnr_session$的DDL语句过来执行
。然后再执行创建“DBA_LOGSTDBY_PROGRESS”的DDL语句,依然报错:
查看LOGSTDBY_LOG的DDL语句,并执行:
提示找不到“system.logmnr_log$”,再
从其他数据库拷贝system.logmnr_log$的DDL语句过来执行
,然后再创建LOGSTDBY_LOG,成功了:
从上图可见“LOGSTDBY_LOG”上的红叉没有了,而且依赖它的“DBA_LOGSTDBY_PROGRESS”也正常了。至此解决了“DBMS_INTERNAL_LOGSTDBY”包体依赖的错误中的“DBA_LOGSTDBY_PROGRESS”。
回头查看“DBMS_INTERNAL_LOGSTDBY”发现其依赖仍有错误,这次是视图“DBA_LOGSTDBY_LOG”:
重新执行“DBA_LOGSTDBY_LOG”的DDL语句竟然成功了,没有报错,但是红叉还在,将其重新编译,红叉消失了。再重新编译“DBMS_INTERNAL_LOGSTDBY”,也正常了,这样就解决了“ORA-04063”的错误。
接下来创建个job验证一下:
可见job创建成功。
写的这么绕关键就是缺少了system.logmnr_session$和system.logmnr_log$这两张表,具体什么原因导致的我也不清楚。
项目上需要使用job在每月月初重置序列,在我本机的Oracle上创建job成功了,但在项目的测试平台上创建却报了ORA-04063的错误,详见下图:在网上搜索,有人说要重新编译DBMS_INTERNAL_LOGSTDBY这个包体,尝试了一下,编译后还是有错。在PL/SQL中查看DBMS_INTERNAL_LOGSTDBY,发现其依赖的视图“DBA_LOGSTDBY_PROGRESS”有
开发人员修改一个包里一个过程,修改成功,并重新编译成功,在程序日志发现调用这个包报错
ORA
-06508: PL/SQL: 无法找到正在调用的程序单元
先如下验证:
打开
数据库
的一个会话
创建
一个包如下:
CREATE OR REPLACE PACKAGE SimplePkg AS
v_GlobalVar1 NUMBER := 1;
PROCEDURE UpdateVar
oracle
rac 环境,其中一台实例报错如下.
alert 日志报错
$ tail -f /u01/app/
oracle
/diag/r
dbms
/orcls1/orcls12/trace/alert_orcls12.
log
2019-06-25T08:24:42.755760+08:00
Errors in file /u01/ap...
今天同事让帮忙处理一问题,将物理standby转换为逻辑standby失败,expdp/impdp无法使用,
DBMS
_
JOB
无法建立新的
JOB
.
expdp详细错误信息如下:
ORA
-31626:
job
does not ...
=============================================================================================
错误:
ORA
-28040: No matching authentication protocol
原因:客户端版本与服务器端版本不一致导致,比如客户端是11g,而服务器端是12c
解决方案:
最根本...