Zitat Zitat von B.Hauser Beitrag anzeigen
Versuch mal folgendes:
Code:
 /Free
   Exec SQL
       update tabelle 
          set spalte = NULLIF(:hostvar, '');
Das war einer meiner ersten Versuche. Hab's trotzdem noch einmal versucht, aber leider das gleiche Ergebnis.

Zitat Zitat von B.Hauser Beitrag anzeigen

Code:
D HostVarInd      S            5I 0
 /Free
    If HostVar <= ' ';
       HostVarInd = -1;
    Else;
       HostVarInd = *Zeros;
    EndIf;

    Exec SQL Update Table
                Set Spalte = :HostVar :HostVarInd;
 /End-Free
Auch das hat leider nicht funktioniert. Gleicher Effekt: Keine Meldung im Joblog, sqlcod 0, sqlstate 0, update erfolgreich, aber eben kein NULL in der Spalte

Wir haben auch etliche Serviceprogramme mit der gleichen Technik: ein update mit NULL innerhalb einer case-Anweisung in embedded sql, ohne NULL-Anzeiger. Da funktioniert es.
Ein Unterschied zu der aktuellen Tabelle können wir nicht feststellen.

Der Fehler tritt übrigens auf zwei unterschiedlichen i5 auf.

Wir (meine Kollegen und ich) sind jetzt mit unserem Latein am Ende und haben uns für zwei update-anweisungen in einer if/else-block entschieden, eine schreibt NULL direkt, die andere schreibt die Hostvariable.

Nicht schön, aber selten

Danke an alle für die Antworten!

@Fuerchau: Wir hätten sogar die NULL-Anzeiger eingebaut. ^^