日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ORA-04028: cannot generate diana for object xxx

發布時間:2024/10/12 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ORA-04028: cannot generate diana for object xxx 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

在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;)

轉載于:https://www.cnblogs.com/kerrycode/p/7772062.html

總結

以上是生活随笔為你收集整理的ORA-04028: cannot generate diana for object xxx的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。