Importazione dati csv

mercoledì 15 dicembre 2010 - 19.58

cypher Profilo | Junior Member

salve a tutti,
dovrei importare un file csv creato con sql server, in una tabella mysql.
allora faccio LOAD DATA LOCAL INFILE 'path.csv' INTO TABLE mioDatabase.tabella FIELDS TERMINATED BY ";" LINES TERMINATED BY "#eoat#"
solo che mi importa solo la prima riga.

perche ??

è da due giorni che ci perdo la testa e non riesco a trovare la soluzione

eventualmente c'è per caso un modo per fare il dump del risultato di una query sql in formato .sql ??

lbenaglia Profilo | Guru

>salve a tutti,
>dovrei importare un file csv creato con sql server, in una tabella
>mysql.
>allora faccio LOAD DATA LOCAL INFILE 'path.csv' INTO TABLE mioDatabase.tabella
>FIELDS TERMINATED BY ";" LINES TERMINATED BY "#eoat#"
>solo che mi importa solo la prima riga.
>
>perche ??

Premetto che non conosco MySQL, ma non mi è chiaro quel LINES TERMINATED BY "#eoat#".
Hai provato a specificare LINES TERMINATED BY '\r\n' corrispondenti ad un CR+LF come riportato nella documentazione ufficiale?
http://dev.mysql.com/doc/refman/5.0/en/loading-tables.html

>eventualmente c'è per caso un modo per fare il dump del risultato
>di una query sql in formato .sql ??
Se intendi generare i comandi INSERT INTO la risposta è affermativa, puoi farlo da SSMS selezionando l'apposita voce nelle opzioni avanzate del Generate Script Wizard, ma la cosa avrebbe poco senso dato che i comandi generati possono non essere compatibili con il linguaggio SQL di MySQL.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/

cypher Profilo | Junior Member

purtroppo ci sono dei campi testo in cui ci sono degli "a capo" e quindi "\r\n" non può funzionare.
l'unico carattere terminatore che sono riuscti ad identificare è #eoat# che è una stringa terminatrice dell'ultima colonna di tipo testo.

dato che anche con i comandi sql la compatibilità non è garantita come faccio a risolvere il problema?

lbenaglia Profilo | Guru

>purtroppo ci sono dei campi testo in cui ci sono degli "a capo"
>e quindi "\r\n" non può funzionare.
>l'unico carattere terminatore che sono riuscti ad identificare
>è #eoat# che è una stringa terminatrice dell'ultima colonna di
>tipo testo.
Presumo che dopo #eoat# ci sia un CR+LF, pertando prova a specificare:

...LINES TERMINATED BY '#eoat#\r\n';

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/

cypher Profilo | Junior Member

ok pero mi importa solo la prima tupla ....

lbenaglia Profilo | Guru

>ok pero mi importa solo la prima tupla ....
Mi spiace, non conoscendo MySQL non posso esserti di ulteriore aiuto.
Allega in un file zip un esempio del file csv con una decina di righe complete ed un secondo file con il comando di CREATE TABLE MySQL della tabella di destinazione.
In questo modo è più facile che qualcuno possa darti una mano.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/

cypher Profilo | Junior Member

alla fine dopo mooolti tentativi falliti ho installato sql server.

ora cercando su internet sono riuscito a trovare che per importare .csv devo invocare
BULK INSERT mia_tabella FROM 'c:\mio_file.csv' WITH ( FIELDTERMINATOR = ';', ROWTERMINATOR = '#EOAT#' )
solo che mi da il seguente errore
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
dove sbaglio?

p.s. per disperazione mi sono fatto dare anche .bak. puo aiutare in qualcosa?

lbenaglia Profilo | Guru

>p.s. per disperazione mi sono fatto dare anche .bak. puo aiutare
>in qualcosa?
Posta lo zip con quello che ti ho chiesto.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/

cypher Profilo | Junior Member

anche se non ho capito prorpio quello che ho fatto, seguendo questa guida (http://msdn.microsoft.com/en-us/library/ms177429(SQL.90).aspx) sono riuscito a risolvere.

grazie ancora per la tua pazienza :)

mi faro sentire presto.

p.s. una piccola constatazione.
ma quanto è difficile sql server rispetto a mysql??
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5