Téléchargement
illégal
Posez votre question Signaler

[SQL] Remplacement de chaine de caracteres

hasendan 528Messages postés 28 août 2000Date d'inscription 16 décembre 2011Dernière intervention - Dernière réponse le 22 nov. 2007 à 01:03
Salut
Je cherche a remplacer une chaine de caracteres nom1 par une autre nom2 dans un champ d'une table Oracle 9i par une requete Sql (J'utilise Toad)
Les champs concernés doivent repondre a :
select champ from table p1
where p1.etat = 'Validé'
AND p1.champ LIKE '%nom1%';

Le champ concerné contient des valeurs separées par des virgules:
ex. toto,titi,nom1,tutu

Merci d'avance
PS: je suis novice en la matière :)
A+
Dan
Lire la suite 

[SQL] Remplacement de chaine de caracteres »

7 réponses
Réponse
+2
moins plus
Salut
J'ai teste la requete ci-dessous qui marche sauf que je peux pas trier mes enregistrements
update table
set champ = REPLACE(champ, 'nom1', 'nom2') ;
Ajouter un commentaire
Réponse
+0
moins plus
Salut

En une requete je pense que ca risque d'etre compliqué, mais ce que je pense c'est de faire une procédure qui récupère la valeur du champ complet puis de modifer à ta convenance, puis de remplacer ton champ dans la base

si kelkun voit une autre maniere??
Ajouter un commentaire
Réponse
+0
moins plus
Je connaissais pas le REPLACE, mais a partir de la, en faisant une jointure de UPDATE sur le SELECT plus haut, avec comme champ join, l'identifiant. Ca devrais pouvoir tourner.
Je suis pas un spécialiste d'Oracle
sparxnekk- 22 juin 2005 à 12:58
Heu ben le plus simple c'est le update

>>> si tu veux modifier dans la table !
update <nom_table> set <colonne> = <nouvelle_valeur>
where <colonne>=<ancienne valeur>;

>>>et si tu veux juste le faire par affichage
select decode(colonne,<ancienne_valeur>,<valeur_de_substitution>,<valeur_par_defaut>)
from....;
hasendan- 22 juin 2005 à 22:25
Salut
Je veux seulement remplacer une partie des colonnes
Il faut donc recuperer l'ancienne valeur, remplacer une partie de l'enregistrement et le substituer a l'ancienne.
Le REPLACE , comme dit ,fonctionne tres bien si ce n'est la possibilite de trier les enregistrements touchés par la modification .
arsene12- 21 juil. 2007 à 11:21
Bonjour, j'ai actuellement le même problème que vous il y a 2 ans. J'aimerai modifier ligne par ligne une valeur d'une rubrique dans un champs de table et remplacer une valeur par une autre en fonction d'une condition. J'essaye le code suivant mais y'a un bug au niveau de HLitPremier :

HExécuteRequête(MaRequete)

SI ErreurDétectée ALORS
Erreur ("Erreur d'initialisation de la requête" +RC+ HErreurInfo())

SINON
HLitPremier (MaRequete)
TANTQUE PAS HEnDehors ()
HLitSuivant(MaRequete)
FIN

FIN

Ma Requete est une requete de modification.

Aviez-vous solutionné votre problème y'a 2 ans et pourriez vous m'indiquer une piste? Je vous en remercie d'avance
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,
ton pb vient juste apres le HLitPremier (MaRequete)
il faut indiquer si Htrouve(marequete) et continuer avec le meme code.
Ajouter un commentaire
Ce document intitulé « [SQL] Remplacement de chaine de caracteres » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?