我正在寻找一个包装,已经有一个正常的程序。逐步处理某个函数,我遇到了“ 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;
我希望输出的结果将由projectName和Project Length组成,显示项目花费的月数
答案 0 :(得分:2)
只需使用
alter function project_length compile;
发生此问题,其中一个从属对象获得了DDL。也许您在此函数中有一条语句,此处未显示,它引用了表project
,最近又在表project
中添加了一列(表)
实际上,此处显示的代码中没有依赖对象。因此,该函数的代码中一定缺少某些东西。