2008-11-17 10 views

Antwort

26
SELECT LAST_DDL_TIME, TIMESTAMP 
FROM USER_OBJECTS 
WHERE OBJECT_TYPE = 'PROCEDURE' 
AND OBJECT_NAME = 'MY_PROC'; 

LAST_DDL_TIME ist das letzte Mal, es kompiliert wurde. TIMESTAMP ist das letzte Mal, als es geändert wurde.

Prozeduren müssen möglicherweise neu kompiliert werden, auch wenn sie sich bei einer Abhängigkeitsänderung nicht geändert haben.

+1

i nicht user_objects finden. Beim Ausführen dieser Abfrage tritt ein Fehler auf – kbvishnu

+2

@Harie - das liegt daran, dass es sich bei dieser Frage um Oracle und nicht um SQL Server handelt. – ninesided

+0

Hat die Beschreibung von 'LAST_DDL_TIME' und' TIMESTAMP' Gültigkeit? Ich habe gerade einen Package Body neu übersetzt (er war ungültig): 'alter package foo kompiliert Body-Reuse-Einstellungen;' und beide Spalten wurden aktualisiert. Ein anderer Unterschied ist, dass ich 'DBA_OBJECTS' abfrage (aber das sollte nicht wichtig sein?). – user272735

0
SELECT name, create_date, modify_date 
FROM sys.procedures order by modify_date desc 
+3

Das wird für Oracle nicht funktionieren. –

+0

Das ist sql server –

0

folgende Abfrage tun in Oracle

SELECT * FROM ALL_OBJECTS WHERE OBJECT_NAME = 'OBJ_NAME' ; 
+4

@Thilakan - Wenn Sie 'ALL_OBJECTS' abfragen, sollten Sie ein Prädikat in' OWNER' einfügen, sonst erhalten Sie möglicherweise mehrere Zeilen zusätzlich zum 'OBJECT_TYPE'-Prädikat aus WWs Antwort vor ein paar Jahren. Sie sollten wahrscheinlich auch beachten, dass 'ALL_OBJECTS' alle Objekte enthält, die der aktuelle Benutzer für nicht alle Objekte in der Datenbank besitzt, die sich in' DBA_OBJECTS' befinden. –