IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration Oracle Discussion :

"Rechercher/Remplacer" dans les textes des packages et procédures stockées.


Sujet :

Administration Oracle

  1. #1
    Membre habitué Avatar de ilalaina
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2007
    Messages : 341
    Points : 187
    Points
    187
    Par défaut "Rechercher/Remplacer" dans les textes des packages et procédures stockées.
    Bonjour à tous.
    J'aimerais remplacer un mot spécifique dans tous les packages et procédures stockées de ma base. Je ne sais pas si c'est possible, mais j'aimerais faire un truc du genre "Rechercher/Remplacer" (comme dans un éditeur de texte).
    Je voudrais donc savoir s'il est possible de modifier les textes d'un package ou d'une procédure stockée au moyen d'une requête SQL du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    update dba_source set text = replace (text, 'chaîne1', 'chaîne2');
    Je sais bien que cela ne marche pas mais c'est un truc de ce genre que je cherche.
    Merci.

  2. #2
    Membre actif Avatar de DAB.cz
    Inscrit en
    Octobre 2006
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 221
    Points : 249
    Points
    249
    Par défaut
    Utilisant text de user_source, on peut produire l'ordre suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    create or replace procedure XXX as <text_de_proc>
    et re-créer l'objet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    execute immediate <ordre>
    DAB

  3. #3
    Invité
    Invité(e)
    Par défaut
    Je comprends ton problème et je ne connais pas de solution simple, d'autant que de le remplacement automatisé de code, c'est tout de même dangeureux.
    Est-ce qu'il n'est pas plus simple d'identifier les sources et de faire les modifications dans un éditeur PL/SQL?
    Ça dépend bien sûr de la quantité et de la complexité de ton code...

    Sinon, tu peux récupérer les ddl avec la fonction suivante, puis faire le remplacement et l'execute immediate:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DBMS_METADATA.GET_DDL('PACKAGE','PKG_TRANS') FROM dual;

  4. #4
    Membre habitué Avatar de Loyd1974
    Profil pro
    Inscrit en
    Août 2007
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 176
    Points : 196
    Points
    196
    Par défaut
    Qu'est ce qui motive ces changements ?

    Une table renommée ? Il suffit d'utiliser un synonyme
    Une colonne renommée ? Il suffit de créer une vue

    Il existe peut être une solution du même style évitant de devoir tout changer ainsi et de pouvoir migrer en douceur

  5. #5
    Membre habitué Avatar de ilalaina
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2007
    Messages : 341
    Points : 187
    Points
    187
    Par défaut
    Bonjour.
    Tout d'abord un grand merci pour vos réponses.
    Ce qui motive ce changement c'est que nous avons un serveur d'image, et toutes les images et fichiers javascripts utilisés dans les procédures pointent vers le nom de serveur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <script language="javascript" src="\\nom_serveur\javascript\nom_function.js"></script>
    <img src="\\nom_serveur\images\nom_image.gif" .....
    Malheureusement on a du impérativement changer le nom de serveur, et j'ai des centaines de procédures alors je ne pourrais pas tous les modifier manuellement.
    C'est moi qui ai fait une erreur, j'aurais du créer une table qui contient les noms des serveurs et simplement les modifier en cas de changement mais bof, je ne peux plus revenir en arrière.
    Je vais essayer vos solutions et vous tiendrai au courant.
    Merci.

  6. #6
    Membre habitué Avatar de ilalaina
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2007
    Messages : 341
    Points : 187
    Points
    187
    Par défaut
    Bonjour à tous.
    J'ai essayé DBMS_METADATA mais je crois que ce package n'est pas implémenté dans oracle 8.
    J'ai quand-même pu obtenir les ddl des objets en faisant un export avec PL/SQL Dev, mais mon problème maintenant c'est que quand je lance le script la fenêtre SQLPlus me renvoie des prompts du genre "Entrez la valeur de nbsp".
    Est-ce que quelqu'un connait une explication ou une solution pour mon problème? etc
    Merci.

  7. #7
    Membre habitué Avatar de ilalaina
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2007
    Messages : 341
    Points : 187
    Points
    187
    Par défaut
    Bonjour à tous.
    J'ai essayé DBMS_METADATA mais je crois que ce package n'est pas implémenté dans oracle 8.
    J'ai quand-même pu obtenir les ddl des objets en faisant un export avec PL/SQL Dev, mais mon problème maintenant c'est que quand je lance le script la fenêtre SQLPlus me renvoie des prompts du genre "Entrez la valeur de nbsp". etc
    Est-ce que quelqu'un connait une explication ou une solution pour mon problème?
    Merci.

  8. #8
    Membre actif Avatar de DAB.cz
    Inscrit en
    Octobre 2006
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 221
    Points : 249
    Points
    249

  9. #9
    Membre habitué Avatar de ilalaina
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2007
    Messages : 341
    Points : 187
    Points
    187
    Par défaut
    Apparemment ce sont les textes contenant des e commercials qui fait que j'obtienne ces prompts parce que SQL considère par exemple &nbsp ou &eacute comme des variables.
    Je crois que ce que je pourrais faire c'est de chercher des scripts répondant automatiquement au prompts.
    En tout cas merci pour vos réponses.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Recherche Remplacer chiffres dans les tableaux
    Par MDK75 dans le forum VBA PowerPoint
    Réponses: 0
    Dernier message: 16/05/2012, 21h17
  2. Réponses: 8
    Dernier message: 10/03/2010, 16h51
  3. Réponses: 13
    Dernier message: 22/04/2009, 17h43
  4. Réponses: 1
    Dernier message: 18/01/2009, 21h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo