[NEWSboard IBMi Forum]

Thema: NULL und Case

Hybrid View

  1. #1
    Registriert seit
    Oct 2003
    Beiträge
    117
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Das habe ich befürchtet .
    Ohne coalesce kannst du beim Lesen eben auch den NULL-Wert feststellen denn die Hostvariable wird auch dann initialisiert.

    Wenn ihr (entschuldige) so einen Blödsinn programmiert, warum dann überhaupt NULL-Werte ?
    Wir sind erfolgreich von DDS/RPG auf SQL/ILE umgestiegen bzw. sind auch noch dabei. Blödsinn ist meiner Meinung nach, bei DDS zu bleiben ;-).

    Zu NULL-Werten: Warum soll ich etwas speichern, wenn nichts da ist? Aber das ist eine andere Diskussion.

    Wir schreiben an zig Stellen NULL-Werte weg, überall funktioniert es. Nur hier eben nicht. Wenn die Lösung einfach wäre, hätte ich's nicht posten müssen.

    Mir wurde hier schon oft geholfen, auch von Dir.
    Deshalb hoffe ich einfach, dass jemand ein ähnliches Phänomen schon einmal hatte.

  2. #2
    Registriert seit
    Oct 2003
    Beiträge
    117
    Bin einen kleinen Schritt weiter.

    Ich habe noch eine NULLABLE-Spalte in der gleichen Tabelle, Datentyp Timestamp. Für die Spalte habe ich den Update analog gebaut.

    Das Ergebnis: Er schreibt 0001-01-01 00:00:00.000000, initialisiert also nur und setzt nicht NULL.

    Das passt auch zum vorherigen Fall. Da ist die Spalte char. Dort inititialisiert er also auch nur mit Leerzeichen und setzt nicht NULL.

    Jetzt stellt sich aber immer noch die Frage, warum das NULL innerhalb der case-Anweisung ignoriert wird?

  3. #3
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Und wenn du die gleiche SQL-Anweisung im STRSQL ausführst (natürlich mit den gleichen Werten wie in den Hostvars und der Where...) wird ein NULL geschrieben??

    Das klingt für mich schon sehr mystisch.

    Führe mal dein Programm im Debug aus und setze einen Breakpoint gleich direkt nach der UPDATE-Anweisung.
    Schau dann nach dem Update in der Tabelle nach ob ein NULL drinnen steht. Danach lass das PGM zu ende laufen.

    Entweder hast du wirklich noch irgendwo was (Default-Values in der Tabelle, Trigger, andere Programme die zusätzlich ausfgeführt werden etc.) oder das ist ein Bug.

  4. #4
    Registriert seit
    Nov 2003
    Beiträge
    2.427
    Ist vielleicht irgendeine spezielle Compiler-Anweisung oder H-Definition bezüglich NULL-Werten für dieses Programm angegeben?

  5. #5
    Registriert seit
    Oct 2003
    Beiträge
    117
    Schonmal danke an alle für's Miträtseln.

    RPG können wir denke ich außen vor lassen.
    Es wird auch initialisiert bzw. *loval gesetzt statt NULL, wenn ich in der SQL-Konsole des navigators oder auch in einer SQL-Sitzung auf der i5 einen sql-update absetze, z.B.:

    Code:
    update tabelle
                 set    spalte =
                            case 1
                             when 1
                             then NULL
                             else 'xx' 
                            end
                 where  ID = 1;
    Noch ein Hinweis:
    Ein insert mit analoger Syntax funktioniert:

    Code:
                 insert into tabelle (
                                 spalte)
    
                       values (case 1
                                  when 1
                                  then NULL
                                 else
                                  'xx'
                                 end );

Similar Threads

  1. dynamisches Group by funktioniert nicht
    By Tobse77 in forum NEWSboard Programmierung
    Antworten: 12
    Letzter Beitrag: 24-09-09, 09:31
  2. Darstellung der Null im LPEX-Editor (WDSC)
    By Ewald in forum NEWSboard Programmierung
    Antworten: 0
    Letzter Beitrag: 25-01-07, 08:52
  3. Subselect in case when auf DB2/400
    By Flo4711 in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 29-09-06, 18:31
  4. NOT NULL WITH DEFAULT
    By deni87991 in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 04-08-06, 11:32
  5. Cobol-Programm mit Embedded SQL (SELECT CASE)
    By klausgkv in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 08-06-06, 14:47

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •