2008-11-17 4 views

Répondre

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

LAST_DDL_TIME est la dernière fois qu'il a été compilé. TIMESTAMP est la dernière fois qu'il a été modifié.

Les procédures peuvent devoir être recompilées même si elles n'ont pas été modifiées lorsqu'une dépendance a été modifiée.

+1

je ne peux pas trouver user_objects. Une erreur est survenue lors de l'exécution de cette requête – kbvishnu

+2

@Harie - c'est parce que cette question concerne Oracle, pas SQL Server. – ninesided

+0

La description de 'LAST_DDL_TIME' et' TIMESTAMP' est-elle valide? Je viens de re-compiler un corps de paquetage (c'était invalide): 'modifier le paquetage foo compiler les paramètres de réutilisation du corps;' et les deux colonnes ont été mises à jour. Une autre différence est que j'interroge 'DBA_OBJECTS' (mais cela ne devrait pas avoir d'importance?). – user272735

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

Cela ne fonctionnera pas pour Oracle. –

+0

C'est sql server –

0

Après requête fera dans Oracle

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

@Thilakan - Si vous allez interroger 'ALL_OBJECTS', vous devez inclure un prédicat sur' OWNER' sinon vous pouvez obtenir plusieurs lignes en plus du prédicat 'OBJECT_TYPE' de la réponse de WW il y a quelques années. Vous devriez probablement également noter que 'ALL_OBJECTS' contient tous les objets que l'utilisateur actuel a des privilèges sur tous les objets de la base de données qui seraient dans' DBA_OBJECTS'. –

Questions connexes