Avatar billede marrix Juniormester
27. oktober 2011 - 07:44 Der er 7 kommentarer og
1 løsning

LOAD DATA LOCAL INFILE - tomme kolonner

Hej.

Jeg forsøger at 'LOAD DATA LOCAL INFILE ...' fra et lokalt csv-dokument til en eksternt liggende db. Jeg får ingen fejl, men jeg får ikke mine data ind som forventet. Jeg får alle de forventede rækker og første kolonne bliver fint autonummereret, som forventet, men de øvrige to kolonner er tomme (ikke NULL - men tomme). Ændrer jeg "FIELDS TERMINATED BY" til noget forkert (bare for at teste, om der er en reaktion), kommer de to kolonner ind med NULL.

Et eksempel på csv-indholdet (Unicode):
3;1000;København K
4;1001;København K
5;1002;København K
6;1003;København K
7;1004;København K
8;1005;København K
9;1006;København K

Og SQLen ... og her har jeg forsøgt med både '' og "", med og uden ENCLOSED, med og uden STARTING BY, med og uden CHARACTER SET, med og uden SET ID = NULL; osv. Har også forsøgt at erstatte ; med , og ændre SQLen til det, og har forsøgt at droppe første kolonne (tallene). Synes, jeg har været gennem alle muligheder.

LOAD DATA LOCAL INFILE "C:\\SQL\\MYSQL\\postnummerfil.csv"
INTO TABLE dbtest.tbltest
    --character set utf8
  FIELDS TERMINATED BY ";"  ENCLOSED BY ""
  LINES TERMINATED BY "\r" STARTING BY ""
(ID,Postnr,Bynavn)
  SET ID = NULL;

Hvad har jeg overset?
Avatar billede majbom Novice
27. oktober 2011 - 08:39 #1
hvis det er fordi du skal have en mysql-tabel med postnumre/byer, kan du få den her: www.majbom.com/files/byer.zip
Avatar billede marrix Juniormester
27. oktober 2011 - 08:54 #2
Mange tak ... men det er nu mest for øvelsens skyld. Jeg kan få en tilsvarende handling til at kunne lade sig gøre i SQL Server, men jeg skal også have det til at lykkes i MySQL, da jeg skal undervise nogle andre i det :c)

Men tak for hjælpen og tilbagemeldingen.
Avatar billede showsource Seniormester
27. oktober 2011 - 08:56 #3
Og uden at vide det, så måske
LINES TERMINATED BY "\n"
i stedet for
LINES TERMINATED BY "\r"
Avatar billede marrix Juniormester
27. oktober 2011 - 13:38 #4
Tak for svaret.
Jeg har også prøvet med flere versioner af 'linjeskift', men det kan ikke være det. Et forkert 'linjeskift' resulterer blot i, at jeg kun får 1 række. Men i det her tilfælde får jeg alle mine rækker, de rigtige id'er (autonummereret), men ingen tekst-data.
Avatar billede arne_v Ekspert
30. oktober 2011 - 23:29 #5
Hm.

Kunne du proeve at erstatte "" med '' ?
Avatar billede marrix Juniormester
02. november 2011 - 06:19 #6
Hej.
Tak for svaret. Jeg prøver i løbet af i dag, men jeg mener, at jeg har forsøgt alle steder med både ' og " og "" og "' osv.
Avatar billede arne_v Ekspert
27. november 2011 - 01:29 #7
Kommet videre?
Avatar billede marrix Juniormester
14. januar 2012 - 11:28 #8
Fik det aldrig til at virke - måske gjorde jeg noget andet forkert. Men tak for forsøget på at hjælpe.
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