Dear All:
     大家好!最近遇到一个问题。plsql dev连接ORACLE后,包、存储过程、视图 3种对象的图标左上角,显示小红叉。
1、包和存储过程打开对象重新编译却又没有问题,编译成功后,红色小叉自动消失。
2、视图如果没有重新编译,直接查询就会报错视图不存在。一定要重新编译一次。
请教大家这个什么问题呢??存储过程红色叉如下:视图如下:

解决方案 »

  1.   

    不管是视图还是存储过程,如果失效,在引用的时候都会自动重新编译。
    如果能通过,则不会报错,如果存在问题,则会报错。但是,最好还是不要依赖引用时的自动编译,因为这样在并发调用时,
    可能会引起library cache lock/pin。
      

  2.   

    还是有错误啊。右键view,错误就都出来了。
      

  3.   

    当你对存储过程,包,函数,视图等等的对象的涉及的对象的结果发生过改变的时候,将会导致你的这些对象暂时失效,这个时候一般只要重新编译就可以了,或者使用下面的操作手动编译select 'ALTER ' || OBJECT_TYPE || ' ' || owner || '.' || OBJECT_NAME ||  
           ' COMPILE;'  
      from all_objects  
     where status = 'INVALID'  
       and object_type in ('PACKAGE', 'FUNCTION', 'PROCEDURE', 'TABLE', 'VIEW',  
            'SEQUENCE', 'TRIGGER');  
    select 'ALTER PACKAGE ' || OWNER || '.' || OBJECT_NAME || ' COMPILE body;'  
      from ALL_objects  
     where status = 'INVALID'  
       and object_type in ('PACKAGE BODY');  
    ----------将查询出来的结果执行下就可以了。。
      

  4.   


    pl sql developer 会出现这样的问题,你用object browser吧,这个没问题