Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
BUONGIORNO
Chiedo informazioni su come fare ad aggiornare una archivio senza importare nuovamento tutto esempio
se ho caricato alle 9:00 del 05/01/2015 e faccio l'aggiornamento alle 10:: del 05/01/2015 dovrebbe importarmi sono i movimenti fatti tra le 9 e le 10
grazie a tutti
Ciao.
Puoi usare l'incremental load per estrarre solo gli ultimi dati aggiornati.
Lo puoi fare a patto che sul DB ci sia un campo che permetta di riconoscere i nuovi dati (per esempio una data come Date_Insert)
Un esempio:
Let vLoadTime = Num(Now( ));
Tabella:
Load
Campo_Chiave,
Campo_1,
...
Campo_n
Sql Select from DB_source
WHERE Date_Insert >= $(vUltimoLoadTime)
AND Date_Insert < $(vLoadTime); //forse basterebbe mettere: where Date_Insert > ReloadTime() che è una funzione che ritorna la data e ora di ultimo reload.
Concatenate(Tabella)
Load
Campo_Chiave,
Campo_1,
...
Campo_n
from Dati.qvd
Where not exists(Campo_Chiave)
store Tabella into Dati.qvd;
Let vUltimoLoadTime = vLoadTime;
Bisogna stare attenti che Date_Insert abbia lo stesso formato delle variabili/funzioni (come now(), ReloadTime())
Elena
ci sono degli esempi nell'help online, cerca incremental
ed anche qui Incremental Load
di solito i problemi nascono nella formattazione/interpretazione delle date che leggi dal db (come suggerito da Elena); nel caso, indica il tuo db e posta un estratto significativo dello script che usi
ciao massimo
come faccio a mandarti lo script in privato
Ciao Massimo
Come faccio a postare lo script in privato ?
Posta lo script sul forum, ed io o qualcun altro proverà a rispoderti immagino; lo scopo del forum è condividere ed ampliare quel che si conosce.
SET ThousandSep='.';
SET DecimalSep=',';
SET MoneyThousandSep='.';
SET MoneyDecimalSep=',';
SET MoneyFormat='€ #.##0,00;-€ #.##0,00';
SET TimeFormat='hh.mm.ss';
SET DateFormat='DD/MM/YYYY';
SET TimestampFormat='DD/MM/YYYY hh.mm.ss[.fff]';
SET MonthNames='gen;feb;mar;apr;mag;giu;lug;ago;set;ott;nov;dic';
SET DayNames='lun;mar;mer;gio;ven;sab;dom';
Odbc connect to as400;
Tab1:
LOAD
*,
A§ARTI as CampoDiJoin;
SQL SELECT*
FROM X64021EA.DATI.BRARTI0F;
Tab2:
LOAD
*,
R§CDOG as CampoDiJoin,
Year(Date#(T§DTDO, 'YYYYMMDD')) as ANNO,
Month(Date#(T§DTDO, 'YYYYMMDD')) as MESE,
Day(Date#(T§DTDO, 'YYYYMMDD')) as GIORNO
Where (T§DTDO >= '20080601');
SQL SELECT*
FROM X64021EA.DATI.V5RDOC0J;
Tab3:
LOAD
*,
L§COD1 as CampoDiJoin;
SQL SELECT*
FROM X64021EA.DATI.C£LIST0F;
LET AnnoCorrente = year(today());
LET AnnoCorrMeno1 = year(today())-1;
LET AnnoCorrMeno2 = year(today())-2;
LET AnnoCorrMeno3 = year(today())-3;
LET AnnoCorrMeno4 = year(today())-4;
LET AnnoCorrMeno5 = year(today())-5;
LET AnnoCorrMeno6 = year(today())-6;