none
sql e xls RRS feed

  • Domanda

  • devo importare un file xls in in db sql 2014; quale la soluzione migliore considerando che questo file excel verrà spesso sostituito?

    Gianni Rossi

    mercoledì 14 dicembre 2016 09:42

Risposte

  • puoi fare una stored procedure che importa il file,

    http://www.sql-server-helper.com/tips/read-import-excel-file-p01.aspx

    oppure creare un un pacchetto di importazione su Integration Services se lo usate, usando come orgini dati il foglio excel

    • Contrassegnato come risposta Gianni Rossi mercoledì 14 dicembre 2016 16:26
    mercoledì 14 dicembre 2016 13:26
  • In tal caso ti consiglierei XML...per esperienza personale ho passato molte giornate a impazzire con dei fogli excel che non riuscivo ad importare per differenze di versioni, celle nascoste o con caratteri nascost, etc... Con XML non si scappa, se fai dei controlli di validazione e per qualche motivo il file non li passa, puoi facilmente controllare cosa c'è che non va...SQL Server poi, ha il tipo di dato XML che per alcune operazioni può facilitarti la vita... Puoi usare due strade, anche qui: TSQL puro o SSIS (integration Services). Esempio TSQL: https://www.mssqltips.com/sqlservertip/2899/importing-and-processing-data-from-xml-files-into-sql-server-tables/ Esempio SSIS: https://www.mssqltips.com/sqlservertip/3141/importing-xml-documents-using-sql-server-integration- L'idea che ho in mente, e che ti propongo, è la seguente: 1.Installi Integration Services (per la sua configurazione ci sono tonnellate di tutorial online) 2.Configuri un bel pacchetto SSIS che ti faccia validazione e import del file XML, con una bella notifica in caso di errore \ file mancante 3.Crei un SQL Job che lancia il pacchetto SSIS con la scadenza che ti prefiggi... Come ti hanno suggerito, puoi anche fare una stored procedure. Il vantaggio è che hai meno da implementare, forse sarai meno flessibile e potrai applicare "meno" intelligenza al tuo processo... Valuta bene pro e contro anche di XML e XLS. Io ho avuto molti problemi perchè il mio file XLS veniva anche toccato da alcuni utenti, con diverse versioni di office, e impostazioni personali che avevano impatto sul worksheet. Se il tuo XLS è prodotto in modo automatico e il suo formato rimane costante nel tempo, forse puoi anche evitare l'XML... Fai sapere, Luca

    • Modificato Luca Bruno giovedì 15 dicembre 2016 08:11 Scusa per il layout...ho scritto da iPhone :((((
    • Contrassegnato come risposta Gianni Rossi giovedì 15 dicembre 2016 08:24
    giovedì 15 dicembre 2016 08:08

Tutte le risposte

  • Quali strumenti intendi usare per importarlo? Si tratta di una importazione una tantum o di una procedura schedulata?
    mercoledì 14 dicembre 2016 10:52
  • si tratta di una importazione che schedulerò in quanto il file excel verrà settimanalmente sostituito automaticamente

    Gianni Rossi

    mercoledì 14 dicembre 2016 11:00
  • puoi fare una stored procedure che importa il file,

    http://www.sql-server-helper.com/tips/read-import-excel-file-p01.aspx

    oppure creare un un pacchetto di importazione su Integration Services se lo usate, usando come orgini dati il foglio excel

    • Contrassegnato come risposta Gianni Rossi mercoledì 14 dicembre 2016 16:26
    mercoledì 14 dicembre 2016 13:26
  • ottengo questo:

    Messaggio 7302, livello 16, stato 1, riga 47

    Impossibile creare un'istanza del provider OLE DB "Microsoft.Jet.OLEDB.4.0" per il server collegato "(null)".

    come faccio ad aggiungere il microsoft.jet.....


    Gianni Rossi

    mercoledì 14 dicembre 2016 15:22
  • Ciao!

    XLS è un must o puoi averlo anche in altri formati (es. csv)?

    mercoledì 14 dicembre 2016 19:02
  • Purtroppo posso averlo in xls o xml; in csv sarei facilitato in quanto so come fare. 

    Gianni Rossi

    giovedì 15 dicembre 2016 07:34
  • In tal caso ti consiglierei XML...per esperienza personale ho passato molte giornate a impazzire con dei fogli excel che non riuscivo ad importare per differenze di versioni, celle nascoste o con caratteri nascost, etc... Con XML non si scappa, se fai dei controlli di validazione e per qualche motivo il file non li passa, puoi facilmente controllare cosa c'è che non va...SQL Server poi, ha il tipo di dato XML che per alcune operazioni può facilitarti la vita... Puoi usare due strade, anche qui: TSQL puro o SSIS (integration Services). Esempio TSQL: https://www.mssqltips.com/sqlservertip/2899/importing-and-processing-data-from-xml-files-into-sql-server-tables/ Esempio SSIS: https://www.mssqltips.com/sqlservertip/3141/importing-xml-documents-using-sql-server-integration- L'idea che ho in mente, e che ti propongo, è la seguente: 1.Installi Integration Services (per la sua configurazione ci sono tonnellate di tutorial online) 2.Configuri un bel pacchetto SSIS che ti faccia validazione e import del file XML, con una bella notifica in caso di errore \ file mancante 3.Crei un SQL Job che lancia il pacchetto SSIS con la scadenza che ti prefiggi... Come ti hanno suggerito, puoi anche fare una stored procedure. Il vantaggio è che hai meno da implementare, forse sarai meno flessibile e potrai applicare "meno" intelligenza al tuo processo... Valuta bene pro e contro anche di XML e XLS. Io ho avuto molti problemi perchè il mio file XLS veniva anche toccato da alcuni utenti, con diverse versioni di office, e impostazioni personali che avevano impatto sul worksheet. Se il tuo XLS è prodotto in modo automatico e il suo formato rimane costante nel tempo, forse puoi anche evitare l'XML... Fai sapere, Luca

    • Modificato Luca Bruno giovedì 15 dicembre 2016 08:11 Scusa per il layout...ho scritto da iPhone :((((
    • Contrassegnato come risposta Gianni Rossi giovedì 15 dicembre 2016 08:24
    giovedì 15 dicembre 2016 08:08
  • Intanto ti ringrazio per la risposta approfondita; mi dedicherò con calma per decidere come fare perchè ho capito che non basta 10 minuti. aggiornerò questa discussione.

    Gianni Rossi

    giovedì 15 dicembre 2016 08:24