请问一下oracle存储过程必须提前编译好吗?
请问一下oracle存储过程必须提前编译好吗?如果某个存储过程的状态是invalid,一般解决方法就是重新编译一下即可,oracle自己不能自动完成这个工作吗
是不是必须要人工来执行啊?

解决方案 »

  1.   

    请问一下oracle存储过程必须提前编译好吗? 
    是请问一下oracle存储过程必须提前编译好吗?如果某个存储过程的状态是invalid,一般解决方法就是重新编译一下即可,oracle自己不能自动完成这个工作吗 
    是不是必须要人工来执行啊? 
    某个存储过程的状态是invalid,表示里面存在语法错误等,需要程序员修改,它不能自动完成;
      

  2.   

    请问一下oracle存储过程必须提前编译好吗? 
    是请问一下oracle存储过程必须提前编译好吗?如果某个存储过程的状态是invalid,一般解决方法就是重新编译一下即可,oracle自己不能自动完成这个工作吗 
    是不是必须要人工来执行啊? 
    某个存储过程的状态是invalid,表示里面存在语法错误等,需要程序员修改,它不能自动完成;
      

  3.   

    当然要手动编译好啦,那有那么智能的东西
    Invalid状态的存储过程一是有语法错误二是你改变了它所使用的表的表结构
    这时你都得重新编译,有错误时还得修改,要是ORACLE都能自动把你的错误改正
    那还要程序员干吗
      

  4.   

    我是说以前好好的一个存储过程已编译好(系统运行了一年多了),最近发现存储过程失效,那么oracle会不会自动重编译它?在一种情况:
        强制flush库缓存,原来已有的对象被清除了,如果这时oracle又要调用这个对象(存储过程),会有什么情况发生?,系统报错还是oracle重新编译它?
      

  5.   

    是的,必须重新编译。实现方式也可通过工具找到所有invalid的过程等,重新提交运行即可,建议:多次反复运行
      

  6.   


    建一个job任务,自动每隔一天编译存储过程吧!