前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记一次奇怪的ORA-04028: cannot generate diana for object

记一次奇怪的ORA-04028: cannot generate diana for object

作者头像
Leshami
发布2018-08-13 15:10:52
3760
发布2018-08-13 15:10:52
举报
文章被收录于专栏:乐沙弥的世界

      开发人员说新建了一个package,在编译的过程中出现了一些错误。提示为PL/SQL:ORA-00942: table or view does not exists。这是一个很明显的错误,即要么是表不存在,要么是由于没有权限就会出现该错误提示。根据这个提示,在增加相应的权限后,再次编译收到了ORA-04028: cannot generate diana for object这个错误提示。下面是具体的描述。

1、错误提示信息

代码语言:javascript
复制
gx_adm@MMDB> alter package MM_IMP_BAT_ACC_PKG compile;
alter package MM_IMP_BAT_ACC_PKG compile
*
ERROR at line 1:
ORA-04028: cannot generate diana for object gx_adm.IMP_BAT_ACC_AUTH_TMP_TBL

2、分析与解决

代码语言:javascript
复制
robin@SZDB:~> oerr ora 04028
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.

--上面的错误提示是存在锁冲突

oracle@Dev-DB-04:~> export ORACLE_SID=MMDB
oracle@Dev-DB-04:~> sqlplus / as sysdba

SQL*Plus: Release 10.2.0.5.0 - Production on Wed Apr 23 09:21:44 2014

Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.

Connected to:
Oracle Database 10g Release 10.2.0.5.0 - 64bit Production

SQL> show parameter db_name

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_name                              string      MMDB

SQL> @lock_obj.sql    --->没有发现任何对象被锁定

no rows selected

--下面是来自metalink的信息,也没有看到什么可用的帮助信息,提示我们检查语法错误以及也是锁冲突
(Doc ID 19834.1)OERR: ORA 4028 cannot generate diana for object <name> (Doc ID 19834.1)

OERR: ORA 4028 cannot generate diana for object <name> 
Error:  ORA 4028 
Text:   cannot generate diana for object <name>
-------------------------------------------------------------------------------
Cause:  A lock conflict prevented the generation of diana for an object.
Action: Check the syntax.
        If no syntax errors are found, report this error to Oracle World Wide 
        Support.
        For more information about locks, see the index entry on "lock" in 
        <Oracle7 Server SQL Reference>.

--Authro: Leshami
--Blog  : http://blog.csdn.net/leshami
--检查alert 日志,也没有查看到什么特殊的ORA信息
--约摸折腾了一会儿,也没有什么结果,由于是DEV DB,当前没有人再使用,索性重启了一下  
      
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup pfile=/u02/database/MMDB/initMMDB.ora;
ORACLE instance started.

Total System Global Area  599785472 bytes
Fixed Size                  2098112 bytes
Variable Size             163580992 bytes
Database Buffers          427819008 bytes
Redo Buffers                6287360 bytes
Database mounted.
Database opened.

SQL> conn gx_adm/xxx
Error accessing PRODUCT_USER_PROFILE
Warning:  Product user profile information not loaded!
You may need to run PUPBLD.SQL as SYSTEM
Connected.
SQL> alter package MM_IMP_BAT_ACC_PKG compile;

Package altered.

SQL> alter package MM_IMP_BAT_ACC_PKG compile body;

Package body altered.

--从上面的编译来看,编译正常。

3、后记 a、对于这个错误,还是第一次碰到,不过没有检查出锁定对象。 b、通过重启后正常,说明应该还是可能存在锁冲突,可能是重启前没有找到合适的方式检查出来。 c、生产环境不建议贸然重启,最好查明原因再解决。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2014年04月23日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档