一个创建函数的语句,在plsql中调试通过,然后在plsql里drop,通过web页执行这个语句,在plsql中刷新后发现函数重新建立,只是带着红叉, 
1、通过plsql右键的recompile提示compiled with errors, 
2、在命令窗口执行alter function xxx compile;提示Warning: Function altered with compilation errors, 
3、执行dbms_ddl.alter_compile('FUNCTION','xx','xxx')提示invalid sql statement, 
4、用plsql打开此函数的edit窗口,直接执行语句,红叉消失,编译成功。 请教各位,我该如何做才能通过sql语句正确重编译此函数?