[英]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.