2008-11-17 13 views

Odpowiedz

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

LAST_DDL_TIME po raz ostatni został skompilowany. TIMESTAMP to ostatni raz, kiedy została zmieniona.

Procedury mogą wymagać rekompilacji, nawet jeśli nie uległy zmianie w przypadku zmiany zależności.

+1

nie mogę znaleźć user_objects. Występuje błąd podczas wykonywania tego zapytania – kbvishnu

+2

@Harie - to dlatego, że to pytanie dotyczy Oracle, a nie SQL Server. – ninesided

+0

Czy zawiera opis "LAST_DDL_TIME" i "TIMESTAMP"? Właśnie ponownie skompilowałem treść pakietu (była nieważna): 'alter package foo compile body reuse settings;' i obie kolumny, w których zostały zaktualizowane. Inna różnica polega na tym, że pytam o 'DBA_OBJECTS' (ale to nie powinno mieć znaczenia?). – user272735

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

To nie zadziała dla Oracle. –

+0

To jest serwer sql –

0

następujące zapytanie zrobi w Oracle

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

@Thilakan - Jeśli zamierzasz zapytać "ALL_OBJECTS", powinieneś dołączyć predykat na 'OWNER' w przeciwnym wypadku możesz otrzymać wiele wierszy oprócz predykatu' OBJECT_TYPE' z odpowiedzi WW kilka lat temu. Powinieneś również zauważyć, że 'ALL_OBJECTS' zawiera wszystkie obiekty, które bieżący użytkownik ma uprawnienia do nie wszystkich obiektów w bazie danych, które znajdowałyby się w' DBA_OBJECTS'. –