Behandlung von NULL in der Datenbank

Datums- und numerische Felder

Informationen

  • Um die Performance zu verbessern,
    • sollen alle numerischen Felder in der Datenbank einen NOT NULL Constraint und einen Standardwert "0" erhalten. Andernfalls wird beim Filtern die Funktion NVL(<Feld>, 0) im Fall von Oracle, bzw. ISNULL(<Feld>, 0) bei SQL Server verwendet.
    • sollen alle Datumsfelder in der Datenbank einen NOT NULL Constraint und einen Standardwert "1970-01-01" erhalten. Andernfalls wird beim Filtern die Funktion NVL(<Feld>, TO_DATE('01.01.1970', 'DD.MM.YYYY') im Fall von Oracle, bzw. ISNULL(<Feld>, CONVERT(DATETIME, '01.01.1970', 104) bei SQL Server verwendet.
  • Wichtig ist hierbei, dass die Einstellung in der Datenbank und im Customizing gleich sind. Dies bedeutet, dass das Dataitem SQL (ein Bitfield) in Datentabelle DT412 Dataitem den tatsächlichen Zustand in der Datenbank widerspiegeln muss.
    • Hierzu muss das erste Bit gesetzt sein, wenn ein NOT NULL Constraint vorhanden ist. Dies entspricht den Werten "1" oder "3".
    • Andernfalls darf es nicht gesetzt sein, dies entspricht den Werten 0 und 2.
    • Entsprechen die Einstellung im Customizing nicht denen in der Datenbank, schlagen Vergleichsoperationen auf diesen Feldern teilweise fehl, Datensätze, die hier NULL enthalten, werden aus dem Ergebnis ausgeschlossen, bzw. wäre mit negativen Auswirkungen auf die Performance durch o.g. Funktionen zu rechnen, ohne einen Nutzen daraus zu ziehen.