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
Kategori
Computerworld tilbyder specialiserede kurser i database-management

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