繁体   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