Avatar billede wolfgang Praktikant
13. november 2016 - 10:57 Der er 5 kommentarer

Update i tabel med search/replace

Hej,

Jeg har fået en masse snavs ind i min DB :(
Hullet er lukket og jeg har nu brug for, at få ryddet op.

Alle injections starter og slutter med <div>*</div> så det er heldigvis afgrænset, men hvordan laver jeg denne replace update på bedste vis?
- Det berørte felt i tabellen er af typen nvarchar.

Pft. for hjælpen.
Avatar billede michael_stim Ekspert
13. november 2016 - 11:47 #1
Du skal vel köre en DELETE med LIKE? For du skal vel ikke opdatere feltet, det skal vel helt väk, eller?
Avatar billede terry Ekspert
13. november 2016 - 15:17 #2
If you want to remove <div> and </div> and not everything in between then I would run two updates using replace

UPDATE yourTable
SET YourField = REPLACE(YourField, 'div', '')

then another to replace </div>
Avatar billede arne_v Ekspert
13. november 2016 - 16:52 #3
DELETE FROM tabel WHERE field LIKE '<div>%</div>'

eller

UPDATE tabel SET field = '' WHERE field LIKE '<div>%</div>'

*hvis* det er hele feltet er snask.

Hvis feltet bestaar af baade snask ogbevaringsvaerdige data, saakan jeg se to maader:

1) Lade et program hente alle raekker og for hver raekke lave en regex replace og en update

2) Lave en regex replace CLR UDF og bruge den i en update
Avatar billede wolfgang Praktikant
14. november 2016 - 13:39 #4
Jeg ønsker at køre en UPDATE, da jeg kun vil fjerne det, der er injected og ikke det eksisterende indhold i feltet.

Er det muligt?
Avatar billede terry Ekspert
14. november 2016 - 15:53 #5
Just an idea


UPDATE YourTable
SET [SomeField] = Left([SomeField], CHARINDEX('<div>', [SomeField])-1) + RIGHT([SomeField],Len([SomeField])-(CHARINDEX('</div>', [SomeField])+5))
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester