8
votes

Décharger le corps d'une fonction ou d'une procédure dans SQLPLUS

Comment puis-je jeter le corps d'une fonction ou une procédure lors de l'utilisation de SQLPLUS pour vous connecter à une base de données Oracle?


0 commentaires

3 Réponses :


8
votes
select
    text
from
    user_source
where
    type = 'PROCEDURE'
and
    name='YOURPROCEDURENAME'
order by
    line;

4 commentaires

De même type = 'Fonction' et nom = 'YourfonctionName'.


Nous avons plusieurs schémas différents mis en place. Dois-je faire quelque chose de spécial pour faire face à ceux-ci?


Vous pouvez vous connecter au schéma spécifique et user_source ne contiendra que la source de la schéma. Ou vous pouvez vous connecter en tant que DBA et la table DBA_SOURCE aura également une colonne propriétaire que vous pouvez inclure dans votre clause où vous pouvez spécifier le schéma qui vous intéresse.


En fait, vous voulez "Sélectionner un texte". La colonne ligne a le numéro de ligne.



5
votes

Utilisation:

SELECT us.name,
       us.type,
       us.text
  FROM USER_SOURCE us
 WHERE us.type IN ('PROCEDURE', 'FUNCTION')
ORDER BY name, line


0 commentaires

3
votes

Une autre solution consiste à utiliser le dbms_metadata API xxx

Vous pouvez l'utiliser pour toutes les métadonnées, y compris Tables, index et contraintes .


2 commentaires

Upvoting parce que ces "lignes définies / long" seront nécessaires pour les autres mécanismes également, je pense.


@MonoJohnny, défini long n'est pas nécessaire pour les autres mécanismes . Toujours +1, comme dbms_metadata est la voie à suivre, imho.