Ist denn die Spalte OLDKDN auch tatsächlich NULL-fähig?
Ich vermute eher, dass in dem Feld kein NULL-Wert, sondern ungültige numerische Werte (z.B. Blanks) stehen. Schau Dir mal die Hex-Werte an.
In diesem Fall müssten zunächst die ungültigen numerischen Werte korrigiert werden, bevor Dein SQL richtig funktionieren kann.

Vielleicht noch 2 Anmerkungen:
1. Man sollte niemals eine Variable in einem embedded SQL mit SQL anfangen lassen. Diese Variablen hat IBM sich für den PreCompiler (SQLCA und SQLDA und sonst. Variablen) reserviert. Selbst wenn Du heute noch keine Probleme hast könnte IBM mit dem nächsten Release eine Variable SQLQRY in die Communications oder Descriptlor-Area einfügen, und dann ?
2. Für den Vergleich ist es besser die numerischen Felder in alphanumerische zu konvertieren am besten mit VARCHAR anstatt CHAR. Bei CHAR wird mit Blanks auf die volle Länge aufgefüllt. Bei VarChar wird nur die Zahl linksbündig ausgerichtet ohne folgende Blanks ausgegeben.

Sollte es sich tatsächlich um einen NULL-Wert handeln, kannst Du diesen auch mit Hilfe der Funktion COALESCE in einen Default-Wert z.B. 0 konvertieren.

Birgitta