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