Announcement

Collapse
No announcement yet.

Beim Speichern wird ein Leeres Feld mit Leerstring aufgefüllt

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Beim Speichern wird ein Leeres Feld mit Leerstring aufgefüllt

    Wir arbeiten mit einer ORACLE-Datenbank und haben folgendes Problem:

    In unserer Software sprechen wir Datenbank-Felder an wie z.B. vom Typ VARCHAR.
    Wie in diesem Fall ist das Feld gefüllt und es wird im Programm geleert (über TDBEdit-Komponente). Danach wird in die Datenbank gespeichert.
    Wird danach mit der folgenden SQL-Anweisung der Datensatz gesucht, wird er nicht gefunden.

    SELECT *
    FROM Tabelle
    WHERE Feld IS NULL

    Das Problem ist, dass dieses Feld mit Leerzeichen aufgefüllt ist (Bei Typ VARCHAR2(80) sind dann 80 Leerzeichen drin).

    Gibt es irgendwelche Einstellungen, die dieses Problem verhindern können?

    Mfg
    Alex

  • #2
    Was spricht dagegen, wenn ihr in diesem Feld einen Leerstring übergebt? Falls ich mich nicht ganz irre, wird dann der Leerstring als NULL-Wert in das Feld eingetragen. Das klappt aber nur, wenn ich das Feld außerhalb von Oracle mit einem Leerstring versorge.
    Innerhalb von Oracle bleibt mir nur die Wahl, in das gewünschte Feld einen String mit z.B. einem Leerzeichen einzutragen. Wird der Datentyp varchar2(n) verwendet, so werden auch nur die übergebenen Zeichen gespeichert. Beim String mit einem Leerzeichen wird so auch nur das Leerzeichen gespeichert.

    kuemmelche

    Comment


    • #3
      - noch eine Möglichkeit wäre - einen INSERT/UPDATE row-level Trigger zu setzten, welcher dann LTRIM(RTRIM()) ausführen sollte. Dadurch bekommt man automatisch einen NULL-Wert, wenn der Wert nur aus Leerzeichen besteht..

      Comment


      • #4
        Ihc habe keine Ahnung was ein INSERT/UPDATE row-level Trigger ist und wie man den verwendet.

        Könntest du mal ein Beispiel posten!?

        Alex

        Comment

        Working...
        X