alter procedure [procedure_name] rebuild;生成一个重新编译无效对象的脚本
set head off
spool c:\invalid.sql
select 'alter '||object_type||' '||owner||'."'||object_name||'" rebuild;' from all_objects where status='INVALID';
spool off
可能由于与存储过程相关的对象发生了变化,导致了存储过程的无效

解决方案 »

  1.   

    很多原因:
    1、该存储过程需调用的存储过程无效或被删除。
    2、该存储过程相关联的表或视图结构被修改过或被drop掉过
    3、该存储过程相关联的对象的相应的权限被收回。
      

  2.   

    错了,应该是:
    alter procedure [procedure_name] compile;
      

  3.   

    Michaelyfj:
       你的意思就是要定期运行这个教本了
      

  4.   

    想来想去也就是hrb_qiuyb(大森林)说的那些问题了,
    我想在一个系统中碰到这种问题可能也是经常的。
    解决的办法也只好是重新编译alter procedure [procedure_name] compile;如果要碰到这种问题,在存储过程变为invalid的时候,要是存储过程能立马自动编译就好了有点异想天开
      

  5.   

    我夜有同样的问题
    不过我的好象和hrb_qiuyb(大森林)说的一样
    服务器没人动
    但是就是偶尔会丢一些东西