Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi
I'm trying to do a incremental reload. For that, I use Qualify, wich works as expected. But when I try to unqualify, nothing happens.
What am I doing wrong??
Thank you!!
QUALIFY *; //All field are qualified.
[ConsumosEBI]:
LOAD * FROM ..\..\Datos\QVDs\Procesados\Consumos_EBI.qvd (qvd);
LET vUltimo = PEEK('CAS_TRANSIT_ID',-1,TEMPORAL);
OLEDB CONNECT32 TO ......
[Incremental_Load]:
FIRST 100 NOCONCATENATE LOAD *;
SQL SELECT [CAS_TRANSIT_ID]
,[CARD_NUMBER]
FROM REPORTS
WHERE (CAS_TRANSIT_ID> $(vUltimo))
ORDER BY CAS_TRANSIT_ID ASC, TRANSIT_DATE ASC ;
DISCONNECT;
STORE Incremental_Load INTO ..\..\Datos\QVDs\Originales\Incremental.qvd (qvd);
if noOfRows('Incremental_Load')<>0 then
UNQUALIFY *; //This is not working!! ¿Why?
Concatenate (ConsumosEBI) LOAD * Resident Incremental_Load Order by CAS_TRANSIT_ID ASC, TRANSIT_DATE ASC;
Store ConsumosEBI into ..\..\Datos\QVDs\Procesados\Consumos_EBIv2.qvd (qvd);
endif
Hi,
QUALIFY * means all loads after this will have the table name added to the field name.
UNQUALIFY * means all loads after will be normal. This doesn't take something that has been QUALIFIED and change it back to a normal load.
Bill
It is not the if, Cause if I do:
QUALIFY *;
[ConsumosEBI]:
LOAD CAS_TRANSIT_ID,CARD_NUMBER FROM ..\..\Datos\QVDs\Procesados\Consumos_EBI.qvd (qvd);
UnQualify CAS_TRANSIT_ID;
Still the same.. nothing happens! Can anybody help me?
Thanks!
Hopefully I am following correctly - but are you wondering why your resident load pulls in fields named
[Incremental_Load].[CAS_TRANSIT_ID] and [Incremental_Load].[CARD_NUMBER]?
After the first load of these fields it adds [Incremental_Load] to the field name itself. By the time of the resident load the field names themselves contain the [Incremental_Load] prefix, and unqualifying will not remove this. The subsequent load actually IS unqualified because it isn't adding an additional table name in front.
Hi Cristian,
You need to specify the UNQUALIFYed field before it is loaded. If not, what you can do is
RENAME FIELD table.field TO FieldName;
but note that you cannot rename key fields.
Miguel
Hi,
QUALIFY * means all loads after this will have the table name added to the field name.
UNQUALIFY * means all loads after will be normal. This doesn't take something that has been QUALIFIED and change it back to a normal load.
Bill