2009-09-22 3 views
1

Je travaille dans une version modifiée de Sybase 10 qui ne possède pas les fonctions stuff, replace ou str_replace. J'ai besoin de remplacer une partie de la chaîne dans un certain nombre d'enregistrements.Solution de remplacement de chaîne SQL

Y a-t-il des moyens créatifs de programmer autour de cela, donc je n'ai pas besoin de les faire tous manuellement?

Exemple:

UPDATE status 
SET description = replace(description,'abc','def') 
WHERE name = 'test' 

EDIT: J'ai trouvé que nous avons pas de fonctions de manipulation de chaînes et je vais devoir faire des exportations et des importations pour faire des changements de chaîne en vrac. Je laisserai cette question en suspens pour que d'autres qui ne sont pas tout à fait limités comme moi puissent trouver les réponses.

+0

Quelles fonctions pouvez-vous utiliser? Toutes les fonctions de chaîne sont désactivées? –

+0

Je pense avoir les basiques, comme droite, gauche, mi etc, mais je ne les ai pas tous testés. Ceci est une installation sybase modifiée par le fournisseur et je n'ai pas une liste complète de ce qui fonctionne et ne fonctionne pas. De plus, c'est compliqué par l'âge de l'installation (1999-2000). –

Répondre

6
UPDATE status 
SET description = SUBSTRING(description,1,CHARINDEX('abc',description)-1) 
        + 'def' + 
        SUBSTRING(description,CHARINDEX('abc',description)+CHAR_LENGTH('abc'),CHAR_LENGTH(description)-CHARINDEX('abc',description)) 
WHERE name = 'test' 

Tricky et vous devez mettre le texte que vous voulez changer dans quelques endroits, mais il fonctionne ;-)

0

Une combinaison de charindex et de sous-chaîne devrait fonctionner pour vous.

Questions connexes