有很多的程序包为不可用,有什么方便的办法可以不用一个一个地编译,一次编译多个?

解决方案 »

  1.   

    可以写一段PL/SQL来实现:
        DECLARE
        CURSOR csr_invalid is
          select object_name 
              from user_objects where status = 'INVALID' 
              and object_type = 'PROCEDURE' ;
        vc_sql  Varchar2(500);
    BEGIN
       FOR rec_aa in csr_invalid LOOP
          EXECUTE IMMEDIATE 'alter procedure '||rec_aa.object_name||' compile';
       END LOOP;
    END;
      

  2.   

    点击pl/sql developer 窗口工具按钮的回滚按钮后面第四个按钮(有一个小红x),点击以后会列出所有失效的包和函数,然后再点编译(执行)按钮就能一块编译了。