代码之家  ›  专栏  ›  技术社区  ›  ninesided

我如何知道存储过程上次在Oracle中修改或编译的时间?

  •  26
  • ninesided  · 技术社区  · 17 年前

    我最好找一个SQL查询来实现这一点,但其他选项也可能有用。

    4 回复  |  直到 10 年前
        1
  •  41
  •   WW.    17 年前
    SELECT LAST_DDL_TIME, TIMESTAMP
    FROM USER_OBJECTS
    WHERE OBJECT_TYPE = 'PROCEDURE'
    AND OBJECT_NAME = 'MY_PROC';
    

    LAST_DDL_TIME 这是最后一次编译。 TIMESTAMP 这是最后一次更改。

    即使程序在依赖关系更改时没有更改,也可能需要重新编译。

        2
  •  0
  •   Keerthi    14 年前
    SELECT name, create_date, modify_date 
    FROM sys.procedures order by modify_date desc
    
        3
  •  0
  •   nayakam    14 年前

    以下查询将在Oracle中执行

     SELECT * FROM ALL_OBJECTS WHERE OBJECT_NAME = 'OBJ_NAME' ;
    
        4
  •  0
  •   Samuel Åslund mike3996    6 年前

    当我在谷歌上搜索特定日期后更改的PLSQL包时,我来到了这里,这有点类似于上面的问题。 使用WW上面的答案,我得到了查找任何“最近”更改的对象的查询:

    SELECT LAST_DDL_TIME, TIMESTAMP, OBJECT_NAME, object_type
    FROM USER_OBJECTS
    WHERE  -- OBJECT_TYPE IN ( 'PROCEDURE', 'PACKAGE', 'PACKAGE BODY', 'VIEW', 'FUNCTION' ) AND
      TIMESTAMP > '2019-02-20'
    ORDER BY TIMESTAMP DESC;
    
    推荐文章