Lessons Learned 2012 - Führende Nullen

Dieses Thema war mit mein persönliches QlikView-Highlight 2012. Eigentlich eine Kleinigkeit, richtig schwierig zu finden, mir völlig unbekannt - aber dann glücklicherweise einfach zu fixen.

Wir hatten das Problem, daß mit einem neuen QlikView-Release sich bestimmte Schlüsseln nicht mehr trafen. Das dachten wir zumindest: Ab und zu trat der Fehler auf, dann nicht mehr. Wir konnten das Problem soweit einschränken, als das QlikView manchmal führende Nullen "abschnitt", andere Male waren die führenden Nullen wieder da. Unangenehm. Wir gaben den QlikView-Releasewechsel die schuld.

Dann trat der "Fehler" auch in älteren Releases auf. Wir gaben unserem Delta-Load die Schuld. Weitere Analysen folgten. Bis wir folgendes triviales Beispiel nachstellen konnten.

Ein kleines Bilderrätsel: welches Ergebnis erwarten Sie sich von folgenden Script:

BAD:
LOAD * INLINE [
    ValueBAD
    01
    001
    1
    005
    5
    05
];

BAD2:
LOAD * INLINE [
    ValueBAD2
    1
    001
    01
    05
    005
    5
];

OK:
Load
text(ValueOK) as ValueOK;
LOAD * INLINE [
    ValueOK
    01
    001
    1
    005
    5
    05
];

Ich hätte mir 3 Felder "ValueBAD", "ValueBAD2", "ValueOK" mit je 6 Einträgen erwartet. Aber nein, QlikView reagiert anders:

  1. ValueBAD hat die Werte 01 und 005
  2. ValueBAD2 hat die Werte 1 und 05
  3. Nur ValueOK (dank der text()-Funktion) hat alle 6 Werte!
Also aufgepaßt! Bei führenden Nullen kommt es bei Zahlenfeldern auf die Ladereihenfolge an! Gefährdet sind  alle Art von Schlüsselfelder, zusammengesetzte Schlüsseln, Hierarchy Load, etc.! Am besten man geht auf Nummer Sicher und benutzt bei Feldern mit führenden Nullen stets die text()-Funktion.

PS: QT Support hat das ganze übrigens auch als Working as Designed bestätigt!

0 Response to "Lessons Learned 2012 - Führende Nullen"

Kommentar veröffentlichen

heldendaten GmbH,2017