PLS-00231: 関数XXXXXXはSQLでは使用できません、の原因

ファンクションXXXXXXを宣言しているにもかかわらず、


PLS-00231: 関数XXXXXXはSQLでは使用できません。
このエラーが発生。どうやらfunctionというのはprocedureと違って、パッケージ内プライベートとして作成することはできないみたい。なので、function XXXXXX の宣言をパッケージの方(パッケージボディではない方)に加えてやると万事解決。


create or replace package foo is
function XXXXXX return date;

-- and any definition....
end;

create or replace package foo is
function XXXXXX return date is
begin
return add_months(trunc(sysdate,'MONTH'), 2);
end;

-- and any definition....
end;