webForumDet fria alternativet

importera csv till sql db

5 svar · 552 visningar · startad av evilaid

evilaidMedlem sedan apr. 2009433 inlägg
#1

Hej

Kan någon hjälpa mig med hur jag ska importera en csv fil till en databas?
Det handlar om csv fil med ip adresser för att se var besökare kommer ifrån. Googlade och hittade lite script exempel där man använder BULK INSERT och ska ange fysisk sökväg till csv filen, typ: c:/csvfil.csv ... Innebär det att jag måste ha direkt åtkomst till den dator sql servern är installerad på??
jag menar mitt webbhotell har ju flera servrar. SQl servern ligger ju en egen och webbservern på en annan... Finns det något annat sätt att lösa detta??

Kan tilläggas att det är en ganska stor csv fil.. Typ 1.3Mb... Någon som vet vad det kan innebära utrymmesmässigt på sql databasen..

Tacksam för all hjälp..

nitro2k01Medlem sedan aug. 20039 342 inlägg
#2

Vilken databasmjukvara?
Om MySQL, använd phpMyAdmin, den kanimportera CSV utan större problem.
Om Oracle, se http://www.orafaq.com/forum/t/49128/2/

LaspMedlem sedan juli 200012 980 inlägg
#3

Jag hoppas att det förfarandet inte spär på i vår värld med ondskefull reklam!

BrimbaMedlem sedan dec. 19995 875 inlägg
#4

evilaid skrev:

Hej

Kan någon hjälpa mig med hur jag ska importera en csv fil till en databas?
Det handlar om csv fil med ip adresser för att se var besökare kommer ifrån. Googlade och hittade lite script exempel där man använder BULK INSERT och ska ange fysisk sökväg till csv filen, typ: c:/csvfil.csv ... Innebär det att jag måste ha direkt åtkomst till den dator sql servern är installerad på??
jag menar mitt webbhotell har ju flera servrar. SQl servern ligger ju en egen och webbservern på en annan... Finns det något annat sätt att lösa detta??

Kan tilläggas att det är en ganska stor csv fil.. Typ 1.3Mb... Någon som vet vad det kan innebära utrymmesmässigt på sql databasen..

Tacksam för all hjälp..

Du måste överföra filen till webbhotellets servrar. Sedan om du behöver lägga den på just databasservern eller om det går bra att ladda upp den via ftp till din egna area beror på hur ditt webhotell har konfigurerat systemet.

Du kan exempelvis ange \\servernamn\share\mintextfil.txt istället för c:\

BULK INSERT MyTable   
FROM 'C:\users\evilaid\www\ips.txt'  
WITH  
(   
    FIELDTERMINATOR = ',',   
    ROWTERMINATOR = '\n'  
)

eller

BULK INSERT MyTable   
FROM '\\webbserver\users\evilaid\www\ips.txt'  
WITH  
(   
    FIELDTERMINATOR = ',',   
    ROWTERMINATOR = '\n'  
)

Jag har skrivit om hur man kan använda formatfile i kombination med bulk insert.
http://patrikc.wordpress.com/2009/05/17/importera-textfil-till-sql-server-med-format-file/

evilaidMedlem sedan apr. 2009433 inlägg
#5

Ok, kan tilläggas att jag använder Microsoft Visual studio...

Men brukar alltid få timeout om man kör script som tar lång tid, vet sedan jag försökt ändra datatyp på ett fält i en stor databas..

Brimba*
Jag ska kontakta webbhotellet då för att se vad dom har för restriktioner..

tack för svaren..

TroxyMedlem sedan mars 20041 505 inlägg
#6

BULK INSERT brukar ge bra prestanda.
Att trycka in tusentals rader brukar ta mindre än 1 sek för mig.

136 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)