Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour 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 24/02/2011, 14h26   #1
Membre habitué
 
Inscription : avril 2004
Messages : 363
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 363
Points : 121
Points : 121
Par défaut Table system, recherche code source avec nom de procedure/fonction d'un package body

Bonjour,

J'ai le query suivant qui me permet de rechercher le code source d'un package et de me retourner les lignes qui utilisent des commandes comme upper, lower and like.


Code :
1
2
3
4
5
6
7
8
9
10
11
 
SELECT   line "line n°",
         REPLACE (RTRIM (LTRIM (text)), CHR (10), '') "code sourse"
    FROM user_source
   WHERE NAME = :mon_package
     AND (   UPPER (text) LIKE '%UPPER%'
          OR UPPER (text) LIKE '%LOWER%'
          OR UPPER (text) LIKE '%LIKE%'
         )
     AND TYPE LIKE 'PACKAGE BODY'
ORDER BY line;
En sortie, j'affiche le n° de ligne du package ainsi que le code source de cette ligne.

Je recherche le moyen d'afficher en plus le nom de la procédure/fonction du packaqe ou se trouve la ligne de code.

Comment faire ?

merci
patmaba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2011, 15h52   #2
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 311
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 3 311
Points : 5 808
Points : 5 808
Je ne pense pas que c'est possible avec une requête.
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2011, 08h48   #3
Membre chevronné
 
Homme O. Joly
Support
Inscription : décembre 2010
Messages : 287
Détails du profil
Informations personnelles :
Nom : Homme O. Joly
Âge : 38
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Support
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2010
Messages : 287
Points : 617
Points : 617
Ce code peut donner un début de réponse, mais il suppose que les lignes contenant le mot clé procedure ou le mot clé function contiennent aussi le nom de la fonction (ou de la procédure).

Code sql :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
SELECT *
FROM
 ( SELECT line
     , last_value( proc IGNORE NULLS ) 
            OVER ( PARTITION BY name 
                   ORDER BY line 
                   RANGE BETWEEN 10000 PRECEDING 
                             AND 0 FOLLOWING ) proc
     , text
   FROM
  ( SELECT line
      , name
      , DECODE( proc, 0, NULL, UPPER(text) ) proc
      , DECODE( proc, 0, TEXT, NULL )  text
    FROM
   ( SELECT line 
       , name
       , INSTR( UPPER(text), 'PROCEDURE' ) 
       + INSTR( UPPER(text), 'FUNCTION' ) proc
       , TRIM(text) text
       FROM user_source
      WHERE NAME = :mon_package
        AND (   UPPER (text) LIKE '%UPPER%'
             OR UPPER (text) LIKE '%LOWER%'
             OR UPPER (text) LIKE '%LIKE%'
             OR UPPER (text) LIKE '%PROCEDURE%'
             OR UPPER (text) LIKE '%FUNCTION%'
            )
        AND TYPE LIKE 'PACKAGE BODY'
   ORDER BY line ) ) )
WHERE text IS NOT NULL ;
ojo77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h37.


 
 
 
 
Partenaires

Hébergement Web