Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Errore import file csv in mysql

    Ciao a tutti.
    Ho la necessità di importare un file csv in una tabella su MySQL. A tale scopo ho creato una tabella con lo stesso numero di campi presenti sul file csv da importare.
    Per l'import ho utilizzato il seguente script:
    codice:
    LOAD DATA INFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/Marzo.csv' 
    INTO TABLE attivita
    FIELDS TERMINATED BY ',' 
    ENCLOSED BY '"'
    LINES TERMINATED BY '\n'
    IGNORE 1 ROWS;
    Andando ad eseguire il codice ottengo però il seguente errore: Error Code: 1265. Data truncated for column 'id' at row 1
    che starebbe ad indicare che il dato relativo al campo "id" della tabella è stato troncato.
    Premetto che, nella tabella creata in mysql, il campo id è di tipo INT.

    Qualche suggerimento?
    Grazie

  2. #2
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,135
    Difficile che qualcuno possa darti suggerimenti utili senza vedere il contenuto del file

  3. #3
    Quote Originariamente inviata da luca200 Visualizza il messaggio
    Difficile che qualcuno possa darti suggerimenti utili senza vedere il contenuto del file
    Di seguito un estratto del contenuto del file csv. Per ovvie ragioni di privacy ho dovuto modificare il contenuto di alcuni campi inserendo nomi di fantasia:

    codice:
     
    id order_id stato causale_rinvio ragione_sociale alias man tecnologia indirizzo attivita sub_attivita data causale_ultimo_ritardo azienda_prov_ip operatore_prov_ip
    9692097 A_9422065 Rilasciata Positiva BCE SPA ROMA L2 CONNECTIVITY VIA DI TOR CERVARA, 282 - ROMA , ROMA Generica Attivazione da Remoto 20/03/2019 Abc Pinco Pallino
    9692100 A_9422066 Rilasciata Positiva BCE SPA ROMA L2 CONNECTIVITY VIA DI TOR CERVARA, 282 - ROMA , ROMA Generica Attivazione da Remoto 20/03/2019 Abc Marco Marco
    9315268 U_49132842 Rilasciata Positiva COOP SRL IPER XXX TORINO ADSL_AA_ABC STRADALE PER POIRINO, 7 - PINEROLO , TORINO Installazione e Configurazione 20/03/2019 ABc Ilenia Ilenia

  4. #4
    nell'importazione dici

    FIELDS TERMINATED BY ','
    ENCLOSED BY '"'
    ma non è vero, le cose stanno diversamente a guardare il file che hai postato...

  5. #5
    Quote Originariamente inviata da optime Visualizza il messaggio
    nell'importazione dici

    FIELDS TERMINATED BY ','
    ENCLOSED BY '"'
    ma non è vero, le cose stanno diversamente a guardare il file che hai postato...
    Quindi come va sostituito?

  6. #6
    bisogna capire cosa separa i campi: cos'è, un tab?

  7. #7
    Quote Originariamente inviata da optime Visualizza il messaggio
    bisogna capire cosa separa i campi: cos'è, un tab?
    Ok. Sono solito aprire i csv con excel e da lì non si vede. Adesso l'ho aperto con blocco notes e ho visto che i campi sono separati da ";"
    Questo è il file aperto
    codice:
    id;order_id;stato;causale_rinvio;ragione_sociale;alias;man;tecnologia;indirizzo;attivita;sub_attivita;data;causale_ultimo_ritardo;azienda_prov_ip;operatore_prov_ip9692097;A_9422065;Rilasciata Positiva;;BCE SPA;;ROMA;L2 CONNECTIVITY;VIA DI TOR CERVARA, 282 - ROMA , ROMA;Generica;Attivazione da Remoto;20/03/2019;;Abc;Marco Marco
    9692100;A_9422066;Rilasciata Positiva;;BCE SPA;;ROMA;L2 CONNECTIVITY;VIA DI TOR CERVARA, 282 - ROMA , ROMA;Generica;Attivazione da Remoto;20/03/2019;;Abc;Pinco Pallino
    9315268;U_49132842;Rilasciata Positiva;;COOP SPA;IPER XXX;TORINO;ADSL_AA_ABC;STRADALE PER POIRINO, 7 - PINEROLO , TORINO;Installazione e Configurazione;;20/03/2019;;Abc;Ilenia Ilenia
    Se non ho capito male, la modifica allo script dovrebbe essere la seguente:
    codice:
      FIELDS TERMINATED BY ';' 
      ENCLOSED BY ' " ' 
    giusto?

  8. #8
    i campi non mi sembrano racchiusi tra apici...

  9. #9
    Ok, ho tolto l'espressione
    codice:
    ENCLOSED BY ' " ' 
    e ho inserito la seguente espressione per convertire la stringa relativa alla data, in formato DATE:

    codice:
       (id,order_id,stato,causale_rinvio,ragione_sociale,alias,man,tecnologia,indirizzo,attivita,sub_attivita,@data,causale_ultimo_ritardo,azienda_prov_ip,operatore_prov_ip)SET data = STR_TO_DATE(@data, '%d/%m/%Y');
    Mandando in esecuzione l'intero codice ottengo però il seguente errore:

    Error Code: 1406. Data too long for column 'ragione_sociale' at row 12

  10. #10
    Quote Originariamente inviata da Andreawave Visualizza il messaggio
    Ok, ho tolto l'espressione
    codice:
    ENCLOSED BY ' " ' 
    e ho inserito la seguente espressione per convertire la stringa relativa alla data, in formato DATE:

    codice:
       (id,order_id,stato,causale_rinvio,ragione_sociale,alias,man,tecnologia,indirizzo,attivita,sub_attivita,@data,causale_ultimo_ritardo,azienda_prov_ip,operatore_prov_ip)SET data = STR_TO_DATE(@data, '%d/%m/%Y');
    Mandando in esecuzione l'intero codice ottengo però il seguente errore:

    Error Code: 1406. Data too long for column 'ragione_sociale' at row 12
    Come non detto. Ho risolto tutto!
    L'ultimo errore l'ho risolto semplicemente cambiando il tipo di dato da VARCHAR(60) a LONGTEXT. E' stato tutto importato correttamente.
    Grazie per i tuoi preziosissimi consigli!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2019 vBulletin Solutions, Inc. All rights reserved.