Importazione automatica da sito BANCA ITALIA

di il
3 risposte

Importazione automatica da sito BANCA ITALIA

Buogiorno a tutti,

sono un principiante nella programmazione SQL, quindi siate pazienti

Ho da poco cominciato a "giocare" con il database aziendale che è gestito da SAP Business One 8.82.

Vorrei importare dal sito della Banca d'Italia, ogni giorno in maniera automatica,i tassi di cambio valuta.

per avere la query, si deve caricare questo link:

http://cambi.bancaditalia.it/cambi/QueryOneDateAllCur?lang=ita&rate=0&initDay=14&initMonth=11&initYear=2013&refCur=euro&R1=csv

e si avrà il cambio del 14/11/2013 (i cambi aggiornati escono il pomeriggio, quindi ogni mattina deve importare i dati del giorno prima)

A me servono solo i dati riguardanti:

Dollaro USA - Sterlina UK - Franco CH (Svizzero)

Questi dati dovranno essere scritti nella tabella SQL esistente di nome "ORTT" con questa struttura:

Rate date - aaa-mm-dd (data del cambio)
Currency - USD - GBP - CHF (cambio)
Rate - #.###### (il cambio ma al contrario, cioè (1 / il valore preso da banca d'italia))
DataSource - (non lo so, ma è sempre "I"
UserSign - (numero utente che ha effettuato l'aggiornamento, di solito "1")

Lanciando la query del sito Banca Italia, genera un file CSV, ma come lo faccio leggere al DB? Lo apre in memoria o lo deve salvare e poi leggerlo?

So che è una rogna, però lo vorrei fare per ottimizzare i tempi e per imparare qualcosa in più

Grazie a tutti coloro che vorranno aiutarmi!

Saluti

Ivan

3 Risposte

  • Re: Importazione automatica da sito BANCA ITALIA

    Qui la programmazione SQL non c'entra.
    Occorre fare il parser (l'analisi) del testo e cercare le informazioni che ti servono.
    Ci vuole come minimo la conoscenza di un linguaggio discript come VBScript, VBA, ...

    Ad esempio, potresti caricare il file in Excel, estrarre le informazioni, ed esportarle in SQL Server.
    Farlo programmaticamente (cioè automaticamente con un programma) non è banale.
  • Re: Importazione automatica da sito BANCA ITALIA

    In effetti, immaginavo.

    Io avevo pensato a:
    
    CREATE Table CSVTableX
    (
    Paese varchar(40),
    Valuta varchar (40),
    CodiceISO varchar (3),
    CodiceUIC varchar (3),
    Quotazione numeric (10,6),
    Convenzione varchar (10),
    Nota varchar (10)
    )
    
    
    bulk insert CSVTablex
    FROM 'http://cambi.bancaditalia.it/cambi/QueryOneDateAllCur?lang=ita&rate=0&initDay=14&initMonth=11&initYear=2013&refCur=euro&R1=csv'
    
    with
    (
    firstrow = 5,
    fieldterminator=',',
    RowTerminator = '\n'
    )
    go
    select * from CSVTablex
    go
    
    DROP Table CSVTableX
    GO
    
    
    Per inserire il file in una tabella, riuscito questo il gioco è fatto, ma non riesco a fargli leggere il file query dal sito...

    Pensi che sono completamente fuori strada?

    PS:
    Per l'esattezza esce il seguente errore:

    Cannot bulk load because the file "http://cambi.bancaditalia.it/cambi/QueryOneDateAllCur?lang=ita&rate=0&initDay=14&initMonth=11&initYear=2013&refCur=euro&R1=csv" could not be opened. Operating system error code 123(La sintassi del nome del file, della directory o del volume non è corretta.).
  • Re: Importazione automatica da sito BANCA ITALIA

    Credo proprio che tu sia fuori strada, completamente.

    1) perché il file devi scaricarlo.
    2) perché il file va verificato, sempre (metti che cambino il formato...)
    3) perchè è inutile caricare dati che non ti servono.
Devi accedere o registrarti per scrivere nel forum
3 risposte