1 如何知道某个存储过程的最后一次修改时间?
2 不知道什么原因,今天在pl/sql developer突然看到很多过程的名字上面多了*号,成了无效的或者说有错误的过程,但实际上重新编译过程后发现*号没了,过程本身并没有错误。

解决方案 »

  1.   

    select LAST_DDL_TIME from dba_objects
    where OBJECT_NAME like 'XX%';
      

  2.   

    1
    select * from user_objects 
    where object_type='PROCEDURE'
      

  3.   

    --查询存储过程最后一次被修改
    select object_name, created, last_dll from user_objects where object_type = 'PROCEDURE';
    至于你说的那种情况,可能是某一张表被人删除重建了,导致某几个存储过程实效,而又互相引用,导致更多的存储过程或函数实效
      

  4.   

    用下面的语句查一下,看看有哪些对象创建时间和最后修改时间不一致,尤其是表
    select object_name, created, last_dll from user_objects
     where created <> last_dll
     --and object_type = 'TABLE'
      

  5.   

    last_dll 就是最后修改时间呀
    由于你已经重编译过所有的存储过程,所以 last_dll 时间应该就是一样的了
      

  6.   

    不好意思  可能是我没有说明白。我的意思是最后一次过程有修改的编译,比如过程中多了或少了几条sql语句,大家说的方法是最后一次编译的时间,但最后一次编译可能并没有做修改。  还有个问题,过程的内容可以恢复到刚创建时的样子吗?在没有备份过数据库的情况下。
      

  7.   

    那就没有地方可以找到了,一般是进SOURCE SAFE,进行版本控制。