|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre habitué
![]() |
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 :
Merci.
__________________
" ... On naît, on vit, on meurt, mais exister est un honneur ... " |
||
|
|
00
|
|
|
#2 |
|
Membre confirmé
![]() Inscription : octobre 2006 Messages : 221 ![]() |
Utilisant text de user_source, on peut produire l'ordre suivant:
Code :
CREATE OR REPLACE procedure XXX AS <text_de_proc> DAB |
|
|
00
|
|
|
#3 |
|
Expert Confirmé
![]() dba Inscription : juillet 2007 Messages : 2 523 ![]() |
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; |
|
|
00
|
|
|
#4 |
|
Membre actif
![]() Inscription : août 2007 Messages : 176 ![]() |
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 |
|
|
00
|
|
|
#5 | ||
|
Membre habitué
![]() |
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 :
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 ... " |
||
|
|
00
|
|
|
#6 |
|
Membre habitué
![]() |
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 ... " |
|
|
00
|
|
|
#7 |
|
Membre habitué
![]() |
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 ... " |
|
|
00
|
|
|
#8 |
|
Membre confirmé
![]() Inscription : octobre 2006 Messages : 221 ![]() |
|
|
|
00
|
|
|
#9 |
|
Membre habitué
![]() |
Apparemment ce sont les textes contenant des e commercials qui fait que j'obtienne ces prompts parce que SQL considère par exemple   ou é 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 ... " |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com