Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Administration
Administration Forum d'entraide sur l'administration du serveur 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 09/11/2007, 15h17   #1
Membre habitué
 
Avatar de ilalaina
 
Homme Ilalaina Rasoloarison
Inscription : mai 2007
Messages : 330
Détails du profil
Informations personnelles :
Nom : Homme Ilalaina Rasoloarison
Localisation : Madagascar

Informations forums :
Inscription : mai 2007
Messages : 330
Points : 129
Points : 129
Envoyer un message via Yahoo à ilalaina Envoyer un message via Skype™ à ilalaina
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 :
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.
__________________
" ... On naît, on vit, on meurt, mais exister est un honneur ... "
ilalaina est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2007, 17h05   #2
Membre confirmé
 
Avatar de DAB.cz
 
Inscription : octobre 2006
Messages : 221
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 221
Points : 214
Points : 214
Utilisant text de user_source, on peut produire l'ordre suivant:
Code :
CREATE OR REPLACE procedure XXX AS <text_de_proc>
et re-créer l'objet:
Code :
execute immediate <ordre>
DAB
DAB.cz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2007, 17h17   #3
Expert Confirmé
 
Avatar de 7gyY9w1ZY6ySRgPeaefZ
 
Homme
dba
Inscription : juillet 2007
Messages : 2 523
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : dba

Informations forums :
Inscription : juillet 2007
Messages : 2 523
Points : 3 972
Points : 3 972
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 :
SELECT DBMS_METADATA.GET_DDL('PACKAGE','PKG_TRANS') FROM dual;
7gyY9w1ZY6ySRgPeaefZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2007, 17h26   #4
Membre actif
 
Avatar de Loyd1974
 
Inscription : août 2007
Messages : 176
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 176
Points : 172
Points : 172
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
Loyd1974 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2007, 10h20   #5
Membre habitué
 
Avatar de ilalaina
 
Homme Ilalaina Rasoloarison
Inscription : mai 2007
Messages : 330
Détails du profil
Informations personnelles :
Nom : Homme Ilalaina Rasoloarison
Localisation : Madagascar

Informations forums :
Inscription : mai 2007
Messages : 330
Points : 129
Points : 129
Envoyer un message via Yahoo à ilalaina Envoyer un message via Skype™ à ilalaina
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 :
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.
__________________
" ... On naît, on vit, on meurt, mais exister est un honneur ... "
ilalaina est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/11/2007, 08h13   #6
Membre habitué
 
Avatar de ilalaina
 
Homme Ilalaina Rasoloarison
Inscription : mai 2007
Messages : 330
Détails du profil
Informations personnelles :
Nom : Homme Ilalaina Rasoloarison
Localisation : Madagascar

Informations forums :
Inscription : mai 2007
Messages : 330
Points : 129
Points : 129
Envoyer un message via Yahoo à ilalaina Envoyer un message via Skype™ à ilalaina
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.
__________________
" ... On naît, on vit, on meurt, mais exister est un honneur ... "
ilalaina est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/11/2007, 08h14   #7
Membre habitué
 
Avatar de ilalaina
 
Homme Ilalaina Rasoloarison
Inscription : mai 2007
Messages : 330
Détails du profil
Informations personnelles :
Nom : Homme Ilalaina Rasoloarison
Localisation : Madagascar

Informations forums :
Inscription : mai 2007
Messages : 330
Points : 129
Points : 129
Envoyer un message via Yahoo à ilalaina Envoyer un message via Skype™ à ilalaina
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.
__________________
" ... On naît, on vit, on meurt, mais exister est un honneur ... "
ilalaina est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/11/2007, 08h19   #8
Membre confirmé
 
Avatar de DAB.cz
 
Inscription : octobre 2006
Messages : 221
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 221
Points : 214
Points : 214
Visualiser le code d'un package/procédure stockée

DAB
DAB.cz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/11/2007, 10h16   #9
Membre habitué
 
Avatar de ilalaina
 
Homme Ilalaina Rasoloarison
Inscription : mai 2007
Messages : 330
Détails du profil
Informations personnelles :
Nom : Homme Ilalaina Rasoloarison
Localisation : Madagascar

Informations forums :
Inscription : mai 2007
Messages : 330
Points : 129
Points : 129
Envoyer un message via Yahoo à ilalaina Envoyer un message via Skype™ à ilalaina
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.
__________________
" ... On naît, on vit, on meurt, mais exister est un honneur ... "
ilalaina 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 00h47.


 
 
 
 
Partenaires

Hébergement Web