Zitat Zitat von Fuerchau Beitrag anzeigen
Wenn man einzelne Spalten nicht benötigt, kann man keinen SELECT * .... FETCH ... INTO :MYDS verwenden. In diesem Fall halt etwas der Mühe unterziehen und die Felder gezielt per SELECT auswählen.
Dies ist sowieso der bessere Weg, da bei einer Änderung der Tabelle ggf. neue Felder nicht in der DS sind aber der SELECT * diese auswählt, der SQL somit nicht ausgeführt werden kann.

Zu einer DS kann man auch ein Indicator-Array verwenden:

fetch mycursor into :myds :dsind

Wobei "dsind" ein Array von 2-Byte-Binärfeldern sein muss.
Ich habe ähnliche Probleme. Ich habe ein SQL mit left join, d.h. das Ergebnis bringt NULL Werte zurück, wenn Daten aus der zweiten Tabelle nicht gefunden wurden.
Nun taucht auch dieser SQL0305 Fehler auf.

Hier die DS:

dnullind s 2b 0
**
d InpSql ds
d iPsWhSe 2
d iPsPtNo 15
d iPsBonT 7 0
d iPmWhse 2
d iPmPtNo 15

Feld 4 wird moniert.


Hier der SQL Fetch command:

c/EXEC SQL
c+ FETCH NEXT FROM CRS1SQL INTO :INPSQL :NULLIND
c/END-EXEC

Was mache ich falsch?


Danke.