Suppression de caracteres dans un champ TEXT

cs_Sbt Messages postés 47 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 22 mai 2012 - 14 oct. 2005 à 10:28
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 - 18 oct. 2005 à 10:09
Bonjour à tous,

Dans une de mes tables, il y a un champ TEXT, nommé RES_TXT.
Dans ce champ, on y insert tout un fichier texte, sur lequel on n'a pas la possibilité de le modifier. Dans ce fichier, il y a des chaines de caracteres spécifiques que l'on veut enlever (exemple : '$A','$B'...).
je n'ai pas trouver de fonction pour supprimer ces chaines spécifiques.
En utilisant la fonction REPLACE, on n'obtient pas toujours ce que l'on veut, car la fonction REPLACE prend en parametre un varchar (maximum 8000). Quand le texte est plus grand, il est tronqué...

Avez-vous des idées ???

@+

Sbt

7 réponses

cs_Sbt Messages postés 47 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 22 mai 2012 1
14 oct. 2005 à 10:36
Pour infos, je suis en SQL Server 2000...

@+
0
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
14 oct. 2005 à 17:14
salut,

et tu veux faire ca directement sous SQL Serveur ?

bah dans ce cas je passerai par une table temporaire avec un champs ordre (autoincrémenté) et un champs valeur en NVARCHAR(8000).
puis tu decoupe le contenu de ton champs original en bout de 8000 caracteres que tu place dans ta table temporaire, tu traite toutes les lignes de cette table avec la fonction REPLACE, et tu reconcatene pour mettre a jour ta table d'origine.

ca risque d'etre un peu fastidieux, mais pour le faire directement ous SQL je ne vois pas d'autre solution
0
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
14 oct. 2005 à 17:19
ou bien sinon une boucle qui cherche la premier position de la chaine a supprimer, et qui concatene la partie a droite, avec la partie a gauche, en supprimant ainsi les caracteres que tu veux supprimer. elle boucle tant qu'elle trouve des caracteres.

mais je ne sais pas si tu ne vas pas te heurter au meme probleme avec un champ ussi long...
0
cs_Sbt Messages postés 47 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 22 mai 2012 1
14 oct. 2005 à 18:14
Merci de la réponse, mais on y avait déjà penser...
Le problème est la performance de la procédure stockée...
Les utilisateurs de l'appli sont très sensibles à cela...

D'autre idées ???
D'autres personnes ???

@+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
17 oct. 2005 à 14:28
salut,
les utilisateur vont lire our ecrire le contenu de ce cahmps ?
je pense que tu peux tout a fait te débrouiller pour lancer le traitement en parallele et que les utilisateurs ne "souffrent" pas du temps de traitement.
0
cs_Sbt Messages postés 47 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 22 mai 2012 1
17 oct. 2005 à 21:07
Merci aieeeuuuuu !!!
Les utilisateurs lisent le champ... c'est tout...
On va essayer de faire ce que tu dis...
On leur soumet les perfs... En plus, on va mettre a jour le champ à la premiere lecture. Comme ca les suivantes seront rapides...
On verra bien...

@+
SBT
0
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
18 oct. 2005 à 10:09
re,

eh bien si les utilisateur n'insere jamais, le delais d'insertion ne sont pas tres importants, donc tu peux meme faire un trigger avec une table temporaire pour decuper ton texte. comme ca le texte est directement formatté dés qu'il arrive en base. car si tu fait seulement a la premiere lecture, ca t'oblige à vérifier a chaque lecture si le texte a deja été formatté. en plus la premiere lecture risque de subir les délais de traitement.

le trigger me semble le plus simple...
0
Rejoignez-nous