Avatar billede kosl99 Praktikant
03. februar 2018 - 14:32 Der er 1 kommentar

powershell import af csv til ms sql database

Hejsa jeg er ved at importerer en csv fil til en ms sql server og har brug for en natlig import. Derfor bruger jeg powershell og har fundet dette script
https://gallery.technet.microsoft.com/scriptcenter/Import-Large-CSVs-into-SQL-216223d9
som virker rigtig fint.
Mit problem er bare, at i min csv fil som jeg ikke rigtig har nogen indflydelse på formateringen af. der er der brugt "," som adskillelse.
Desværre er der en af kolonnerne som også indeholder komma i tekststrengen, noget være rod hvis i spørger mig.
Altså eks. Tekst1, Tekst2, "Tekst3, AndenTekst",Tekst4, Tekst5 osv......
Kan jeg ret simpelt tilføje i koden så den ikke adskiller midt i
"Tekst3, AndenTekst"
Avatar billede arne_v Ekspert
03. februar 2018 - 22:58 #1
Synderen er den her:

$line.Split($csvdelimiter)

jeg kender ikke PS, men følgende C# virker:

Regex.Replace(line, "(\"[^\"]*)(,)([^\"]*\")", "$1#COMMA#$3").Split(csvdelimiter).Select(s => s.Replace("#COMMA#", ",").Trim())

og lidt googling antyder at det samme kan laves i PS som:

Regex.Replace($line, "(\"[^\"]*)(,)([^\"]*\")", "$1#COMMA#$3").Split($csvdelimiter).Select({ param($s) $s.Replace("#COMMA#", ",").Trim() })
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