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

解决方案 »

  1.   

    代码没问题,只要直接在plsql中执行就没问题,只是通过网页执行创建后带红叉,使用ddl进行编译不通过,但打开edit窗口直接运行一下就好了,再执行其他操作都没问题
      

  2.   

    alter function xxx compile
      

  3.   

    没用,提示Warning: Function altered with compilation errors,我帖子里写错了,写成procedure了,不过函数和存储过程都存在这个问题
      

  4.   

    自己搞定了,在web上回车可能会产生一些sql语法不认的字符,而在plsql的编辑器中又自动屏蔽掉了,我直接把回车都删掉,把函数写成一行,编译就通过了
      

  5.   

    http://www.splendidcrm.com/Default.aspx?tabid=70&EntryID=14 replace CRLF with LF