簡體   English   中英

如何修復 ORA-06575:包或函數處於無效狀態錯誤

[英]how to fix ORA-06575: Package or function is in an invalid state error

我正在尋找創建一個包,已經有一個工作程序。 逐步處理一個函數,我遇到了“ORA-06575:包或函數 PROJECT_LENGTH 處於無效狀態”錯誤。

這樣做的目的是最終能夠顯示我的項目持續了多長時間,從開始日期到結束日期以月為單位。 我該如何解決這個問題?

我嘗試了各種不同的方法和例子。 我已經檢查過所有變量都是正確的。

create or replace FUNCTION project_length   
    (startDate IN DATE,   
    endDate IN DATE)   
return number   
is   
begin   
return floor(months_between(startDate,endDate)/12);   
end;   
/

測試

SELECT  projectname, project_length(startDate,endDate)  
FROM project 
WHERE project_length(startDate,endDate) > 0; 

我期待一個包含項目名稱和項目長度的輸出,顯示項目花費的月數

只需使用

alter function project_length compile;

發生此問題的一個從屬對象上有一個DDL。 也許您在此函數內有一條語句( 未在此處顯示) ,它引用表project並且最近在表project添加了一個列(已將DDL應用於表

實際上,此處顯示的代碼中沒有依賴對象。 因此,此函數的代碼中必須缺少某些內容。

我發現當您的函數中存在語法錯誤時也會出現此錯誤。 一步一步調試它,直到它真正工作。 奇怪的是,編譯器在創建函數時不驗證語法......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM