我用的Oracle 9i数据库,近来发现,很多正常的存储过程或包,经常会无缘无故被打了个小红叉要手工编辑按F8重新编译,红叉才会去掉红叉不是包或存储过程有错误了才出现的嘛,我好好的程序又没问题,怎么老是会无缘无故被打红叉?高手能告诉我为什么吗???注意:程序没问题的,只要按F8重新编译就去掉红叉了。

解决方案 »

  1.   

    只要你的代码编译通过了就不是代码问题。引起的原因有很多。比如你存储过程中用了弄个INDEX或者TABLE,但是一段时间后,索引不可用了或者你所在的SCHEMA对这个表没有SELECT等权限了,这时候红叉就会出现。
    只要你的代码编译通过了这种情况一般没有关系的,refresh一下OK。
      

  2.   

    帮忙顶一下,让了解的人来解答.btw:他妈的,我还是CSDN论坛首页的常驻专家门诊(JAVA板块)呢,居然在JAVA板块既不能发新贴,也不能回复。
    btw:郁闷,加的好友太多了,现在加好友都是非法请求了。连好友页面也打不开。连私信页面也打不开。
    btw:CSDN当时没有测试过加好友很多的情况的吗?郁闷。现在一点加好友就出错。
      

  3.   

    有时候表增加删除字段了之类,也会引起失效的
    主要原因像用了%type之类的
      

  4.   

    原因1,修改了該procedure或function或trigger或package中所用到的table結構
    原因2,修改了該procedure或function或trigger或package中所用到的procedure或function或package內容
    以上兩種情況都會引起procedure或function或trigger或package錯誤,需要重新編譯
      

  5.   

    一般的时候没什么大问题。
    recompile就可以