sql ersetzen Sie alle Zeichen, die zwischen zwei strings
Ich versuche herauszufinden, ein Weg, um zu aktualisieren /ersetzen nur den text zwischen zwei strings.
Mir zum Beispiel müssen in der Lage sein, um das Feld zu aktualisieren und ersetzen nur das, was zwischen den folgenden script-tags verlässt Sie den text vor der öffnenden script-tag unberührt.
I want to keep this string<script type="text/javascript" language="javascript">********</script>
Ich nehme an, ERSETZEN wird nicht funktionieren, da der text zwischen den script-tags variieren. Gibt es eine Art wildcard?
UPDATE Products_Joined
SET TechSpecs = REPLACE (CAST(TechSpecs AS NVARCHAR(MAX)), '<script type="text/javascript" language="javascript">********</script>', '<script type="text/javascript" language="javascript">new text</script>' )
AKTUALISIERT: mit @Parkyprg Antwort, Das funktioniert aber nicht ersetzen die Schließung </script>
tag.
Ich am Ende mit dieser.
I want to keep this string new text</script>
Wie entfernen wir das schließende script-tag, wie auch?
UPDATE Products_Joined
SET TechSpecs = REPLACE(CAST(TechSpecs AS NVARCHAR(MAX)),
SUBSTRING(CAST(TechSpecs AS NVARCHAR(MAX)),
CHARINDEX('<script type="text/javascript" language="javascript">',TechSpecs),
CHARINDEX('</script>',CAST(TechSpecs AS NVARCHAR(MAX))) -
CHARINDEX('<script type="text/javascript" language="javascript">',TechSpecs)
),' new text')
- Check dieser und dieser.
- Wie funktioniert
nvarchar(max)
im code korrelieren mit dersql-server-2000
tag, Ihre Frage hat? SQL Server 2000 bietet keine Unterstützung für diemax
Größe Bezeichner für die Saiten. - Vielleicht ist es nicht 2000, nicht wirklich sicher.
- Sie können
SELECT @@VERSION
zu finden. Für die Fragen der Zukunft am besten zu sagen, die richtige version wie 2000, hat viele Einschränkungen im Vergleich zu 2005 und 2008, so dass Sie können auch sub-optimalen Antworten. - hmm, versucht aber wieder nichts, kein Fehler entweder.
- OK. Auch Sie müssen auf mindestens 2005 als
nvarchar(max)
funktioniert. Wenn Sie ausführenDECLARE @I INT = 1
tun, erhalten Sie eine Fehlermeldung? Wenn Sie auf das Jahr 2008. 2005 wäre Ihnen der FehlerCannot assign a default value to a local variable.
- Läuft, bekomme ich "kann Nicht zuordnen einen default-Wert an eine lokale variable."
- So müssen Sie auf 2005 dann.
Du musst angemeldet sein, um einen Kommentar abzugeben.
nvarchar(max)
in der Frage, aber trotzdem(!?)text
?Kann es nicht die beste Lösung, aber...
)
.