在ORACLE数据库(10.2.0.5.0)上修改一个包的时候,编译有错误,具体错误信息为"ORA-04028: cannot generate diana for object xxx"。

Warning: Package Body created with compilation errors.

 

SQL> show error;

Errors for PACKAGE BODY XXXXX."XXXXXXXX":

 

LINE/COL ERROR

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

0/0      ORA-04028: cannot generate diana for object

         xxxx.xxxxx

 

SQL> 

第一次遇到这样的错误信息,有点懵,查看错误信息具体解释,解释有lock conflict, 但是所涉及表根本没有任何会话进程锁定。在Meta Link上搜索,才发现是一个Bug

$ oerr ora 4028

04028, 00000, "cannot generate diana for object %s%s%s%s%s"

// *Cause:  Cannot generate diana for an object because of lock conflict.

// *Action: Please report this error to your support representative.

当包依赖的视图重建后,如果此时尝试编译包就会遇到这个错误,而我所遇到情况是包所依赖的表重建了。 具体可以参考ORA-4028 ERROR WHILE RECOMPILING PL/SQL PACKAGE (文档 ID 1505092.1),

 

APPLIES TO:

 

PL/SQL - Version 10.2.0.5 to 10.2.0.5 [Release 10.2]

Information in this document applies to any platform.

 

SYMPTOMS

Attempting to compile a package fails after the creation of a dependent view with:

ORA-04028: cannot generate diana for object SCOTT.V_TEST

Testcase Scenario:

SQL> CREATE OR REPLACE VIEW V_TEST

(a, b)

AS

select a,b from test

/

2 3 4 5

View created.

SQL> alter package p_test compile;

alter package p_test compile

*

ERROR at line 1:

ORA-04028: cannot generate diana for object SCOTT.V_TEST

 

CAUSE

unpublished Bug 9342254 - ORA-4028: CANNOT GENERATE DIANA OBJECT AND ORA-4020 : DEAD LOCK

SOLUTION

The defect is fixed in 11.1 or later.

Download and apply the Patch 9342254 for your version and platform.

如上所示,这个是一个bug来的,在ORACLE 11.1以及以后版本已经fix掉了,如果遇到这个问题,要么应用补丁9342254 ,如果不能立马应用补丁,经过测试也有两种方法解决:

1:重启数据库,然后重编译包。这时可以重新编译包,不会遇到这个错误。

2:清空SHARED_POOL,然后重编译包。(ALTER SYSTEM FLUSH SHARED_POOL;)

ORA-04028: cannot generate diana for object xxx的更多相关文章

  1. 记得有一个奇怪的ORA-04028: cannot generate diana for object

    开发商称新一package,目前已经在翻译过程中的一些错误.提示PL/SQL:ORA-00942: table or view does not exists.这是一个非常明显的错误,即要么是表不存在 ...

  2. 关于spring boot在启动的时候报错: java.lang.Error: generate operation swagger failed, xxx.xxx.xxx

    Error starting ApplicationContext. To display the auto-configuration report re-run your application ...

  3. ogn1.MethodFailedException:Method "xxx" failed for object xxx

    问题描述:初学ssh写了个小项目,访问界面出现以下错误 java. lang. NoSuchllethodError: org. hi bernate. SessionF actory. openSe ...

  4. ECMAScript5 Object的新属性方法

    虽然说现在并不是所有的浏览器都已经支持ECMAScript5的新特性,但相比于ECMAScript4而言ECMAScript5被广大浏览器厂商广泛接受,目前主流的浏览器中只有低版本的IE不支持,其它都 ...

  5. PowerMock.expectNew(Class<T> type, Class<?>[] parameterTypes, Object... arguments)

    1:PowerMock.expectNew(Class<T> type, Class<?>[] parameterTypes, Object... arguments) 如果你 ...

  6. Getting NHibernate to generate a HiLo string ID

    We've got a large system that's loosely bound to its data source (Navision) via Unity - we're gettin ...

  7. ES5 object的新函数

    虽然说现在并不是所有的浏览器都已经支持ECMAScript5的新特性,但相比于ECMAScript4而言ECMAScript5被广大浏览器厂商广泛接受,目前主流的浏览器中只有低版本的IE不支持,其它都 ...

  8. OpenGL.Vertex Array Object (VAO).

    OpenGL抛弃glEnable(),glColor(),glVertex(),glEnable()这一套流程的函数和管线以后,就需要一种新的方法来传递数据到Graphics Card来渲染几何体,我 ...

  9. Function Object in C++

    Function object is very userful to use member function or non-member function as callback mechanism, ...

随机推荐

  1. 关于awk的多文件处理

    关于awk的多文件处理: awk的数据输入有两个来源,标准输入和文件,后一种方式支持多个文件,如1.shell的Pathname Expansion方式:awk '{...}' *.txt # *.t ...

  2. 新awk整理

    总感觉上一篇awk的总结几乎是照着man翻译过来的,惨不忍睹 无意间在互联网上有找到了宝贵的资料 感觉整理的很好,想着照着这个来重新写下,对照新的man更新下吧,只是总是在改变的 一.awk简介二.a ...

  3. linux之cut命令简单用法

    语法 cut [-bn] [file] cut [-c] [file] cut [-df] [file] 使用说明: cut 命令从文件的每一行剪切字节.字符和字段并将这些字节.字符和字段写至标准输出 ...

  4. MTU,MSS基本概念

    传输层: 对于UDP协议来说,整个包的最大长度为65535,其中包头长度是65535-20=65515: 对于TCP协议来说,整个包的最大长度是由最大传输大小(MSS,Maxitum Segment ...

  5. 系统uid在1-499的原因

    1.因为是保留给系统使用的UID,为了与用户设置的账户区分,防止冲突. 2.并没有其他特别的意义, 3.也叫作虚拟用户,除了0之外,所有的UID在使用上并没有任何区别. 4.linux中文件和程序都要 ...

  6. 基于JAVA实现的排序算法总结

    常用的排序方法有:冒泡排序.快速排序.选择排序.插入排序.归并排序,除此之外,还有基数排序.鸡尾酒排序.桶排序.鸽巢排序.希尔排序等,这里着重介绍下前半段列举的几种常见方法的实现. 1. 冒泡排序法: ...

  7. PLSQL Developer软件使用大全

    PLSQL Developer软件使用大全 第一章 PLSQL Developer特性 PL/SQL Developer是一个集成开发环境,专门面向Oracle数据库存储程序单元的开发.如今,有越来越 ...

  8. es随想二

    一.es运行状态的监控 es长时间批量入库时,需要对入库的性能进行监控,否则可能导致es重启,入库任务失败. 可以编写shell脚本,每分钟用cat命令监控pending的数量,数量逐渐增大时就需要注 ...

  9. CheckStyle

    在Eclipse当中安装CheckStyle插件非常方便,和安装FindBugs除了URL有区别之外,其他的几乎完全一样.我们可以参照以下几个步骤进行(注意一下,eclipse版本不一样,可能安装插件 ...

  10. Golang常用包

    fmt 实现了格式化IO函数,格式化短语派生于C io 提供了原始的io操作 bufio 这个包实现了缓冲的io,io.Reader 和 io.Write 对象 sort 对数组和用户定义集合的原始的 ...