Jeg har et problem med import af tekst fra en fil til en database. Jeg har en txt-fil der ser ud som nedenstående. Tekst under td1 skal sættes ind i felt1 i db osv. Den tekst der skal indsættes starter fra linie 13 og slutter når den når til "End of file"
Håber der en en der kan hjælpe mig her... For skal have lagt 26000 txt-filer ind i en database :)
; Zone for test.dk (td1) (td2) (td3) (td4) @ NS ns1.danaweb.dk. @ NS ns2.danaweb.dk. @ NS 10.0.0.1 mail1 A 81.19.253.131 mail2 A 81.19.253.132 @ A 81.19.253.158 www A 81.19.253.158 post A 81.19.253.131 * A 81.19.253.158 test A 81.19.253.158 @ MX 10 mail1 @ MX 20 mail2 ; End of file
Så vil det nemmeste være at du lave en SQL bruger, som er BULK admin og laver en løkke der løber din mappe igennem for de filer, som har det samme format og bulk importere dem til en midlertidlig tabel. Hvorefter du kan indsætte dem i nogle andre tabeller hvis du har et design de skal følge.
Du kan måske få en ide med det her. Det er klippet og du skal selv tilpasse de nødvendige ting. Men ideen kan du nok se:
Dim fso,folder,files,file,text, linefeed Set fso = Server.createObject("Scripting.FileSystemObject") set folder = fso.GetFolder(DTSGlobalVariables("drop_path").Value) set files = folder.Files Dim Conn,sql,conString
conString = "indsæt din connection string) Conn.Open conString
For each file in files If DateDiff("n", file.DateLastModified, Now()) < 30 Then strSQL = " EXEC ReadAgentFile '" & folder & "\" & File.Name & "'" Conn.Execute(strSQL) End If
Next
create procedure ReadAgentFile @filename as varchar(255) AS
DECLARE @SQL varchar(2000) SET @SQL = "BULK INSERT dintable FROM '" + @filename + "'WITH (FIELDTERMINATOR = '\t')" EXEC(@SQL)
GO
Synes godt om
Ny brugerNybegynder
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.