Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/07/2007, 15h48   #1
Nouveau Membre du Club
 
Inscription : février 2004
Messages : 87
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 87
Points : 35
Points : 35
Par défaut Oracle 8i ou plus. Extraction source procédure

Bonjour,

Je souhaite extraire le source de procédures.

Code :
1
2
3
4
5
6
7
CREATE OR REPLACE  PROCEDURE "NSI"."P_ALIM_CRET"  (ficgen 
    VARCHAR2, fLog UTL_FILE.FILE_TYPE, G_Chemin VARCHAR2) AS
 g_n_val NUMBER;
 nIgnore INTEGER;
 nCursor INTEGER;
 nUpdate INTEGER;
 strSelectQuery VARCH...
Dans quelle table système puis je trouver?

De plus, où puis je trouver les valeur du champ 'status' de la table sys.obj$?
1=valid, 3=invalide... quid des autres valeurs.


merci d'avance
__________________
Cordialement....
Labienus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2007, 08h03   #2
Membre éclairé
 
Avatar de Wurlitzer
 
Inscription : avril 2006
Messages : 465
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 465
Points : 368
Points : 368
Tu trouveras le source des procedures, fonction et package dans DBA_SOURCE et le statut de tes programmes dans DBA_OBJECTS. Je ne connais pas d'autre valeur pour le statut.
Wurlitzer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2007, 09h25   #3
Nouveau Membre du Club
 
Inscription : février 2004
Messages : 87
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 87
Points : 35
Points : 35
Par défaut source procedure....

merci de ta réponse,

Voila ce que j'ai fait:
DETECTION DE TOUT LES PROCEDURES : tri sur owner/nom procedure

Code :
1
2
3
4
5
6
7
8
 SELECT   substr(c.name,1,8)  AS "Owner",
            b.name    AS "Procedure",
            DECODE(b.STATUS,1,'Valid',2,'?',3,'Invalide','????????') AS "Status"
            FROM sys.user$  c ,
            sys.obj$  b ,
            sys.procedure$  a
            WHERE (a.obj# = b.obj#) and (b.owner# = c.user#)
ORDER BY c.name,b.name;
DETECTION DES PROCEDURES INVALIDES: tri sur owner/nom procedure

Code :
1
2
3
4
5
6
7
8
 SELECT   substr(c.name,1,8)                                 AS "Owner",
            b.name                                                  AS "Procedure",
            DECODE(b.STATUS,3,'Invalide','????????') AS "Status"
            FROM sys.user$  c ,
            sys.obj$           b ,
            sys.procedure$  a
            WHERE (a.obj# = b.obj#) and (b.owner# = c.user#) and b.status !=1
            ORDER BY c.name,b.name;
EDITION DANS UN SPOOL D’UNE PROCEDURE STOCKEE NOMMEE

Code :
1
2
3
4
5
6
7
8
9
10
SET heading off
SET page size 9999
SET linesize 300
 
Spool c:\jeremy.log 
 
SELECT text FROM dba_source 
         WHERE type='PROCEDURE' AND 
         name='<nom de ta procedure en majuscule>' 
         ORDER BY line ;

Qu'en penses tu? est ca améliorable?

Merci des info

Labienus


spool off
__________________
Cordialement....
Labienus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2007, 10h41   #4
Membre éclairé
 
Avatar de Wurlitzer
 
Inscription : avril 2006
Messages : 465
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 465
Points : 368
Points : 368
Évites de taper dans les tables internes à Oracle quand tu peux. Utilises plutôt les vues qu'Oracle te propose. En l'occurrence, tu peux à voir le même résultat que tes 2 premières requêtes avec

Code :
1
2
3
4
 
SELECT * FROM DBA_OBJECTS 
WHERE OBJECT_TYPE= 'PROCEDURE'
ORDER BY OWNER , OBJECT_NAME
Code :
1
2
3
4
5
 
SELECT * FROM DBA_OBJECTS 
WHERE OBJECT_TYPE= 'PROCEDURE'
AND STATUS ='INVALID'
ORDER BY OWNER , OBJECT_NAME
PS Tu peux améliorer la présentation en mettant des balises code
Wurlitzer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2007, 10h34   #5
Membre Expert
 
Avatar de Lung
 
Analyste-programmeur
Inscription : mai 2002
Messages : 2 047
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Yonne (Bourgogne)

Informations professionnelles :
Activité : Analyste-programmeur
Secteur : Industrie

Informations forums :
Inscription : mai 2002
Messages : 2 047
Points : 2 048
Points : 2 048
Pratique !

Ca mériterait d'être dans le FAQ.

__________________
L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai.
______________________________________________________________________________________________

Delphi 6#2 Entreprise - Delphi 2010 Architecte - Delphi XE2 Entreprise
Win XP Pro - OpenGL 2.1 - Oracle 11g - Firebird 2.5.0.2
Écrivez dans un français correct !!
Lung est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2007, 10h37   #6
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
http://oracle.developpez.com/faq/?pa...#objectinvalid

Et DBA_ERRORS me parait nettement plus utile
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h58.


 
 
 
 
Partenaires

Hébergement Web