Zitat Zitat von haertl
Die Parameter sind in diesem Fall die Werte 145210 sowie 145221, 145224 , 145222, 145223, 60100, 60110, 60150, 60180, 61000. Sie werden durch einen Datensatz
aus einer Datei eingelesen. Jeder Wert steht in einer eigenen Variable. Die Hostvariablen
##WRK, :##JR und :##MM werden durch eine Eingabemaske beim Start des
Programms vom User eingegeben. Danach werden die Informationen in eine
Variable zum SQL-Kommando zusammengebaut.
Hallo,

vielleicht habe ich ja Dein Problem nicht verstanden, aber:
Wenn Du die Parameter sowieso schon in einer Datei hast, warum verwendest du nicht bei Deinem IN einen Subselect?

Select .... from .... where ABC in (Select MyFld from MyFile where Key = 'X')

Voraussetzung ist, dass pro Auswahl-Möglichkeit ein Satz in der Datei vorhanden ist.

Wenn der String aufbereitet ist benötigst Du folgende Schritte:
1. Über ein Prepare-Statement wird der String in ein SQL-Statement konvertiert
2. Über ein Declare-Statement wird ein Cursor definiert.
3. Mit Open wird der Cursor geöffnet
4. Mit Fetch wird der erste (in deinem Fall einzige Satz) eingelesen.
5. Mit Close wird der Cursor wieder geschlossen.

Und das klappt sicher! bei einem Select Statement. Select ... into geht natürlich nicht!

Die Descriptor Area (SQLDA) brauchst Du nur, wenn im Select unterschiedliche Felder benötigt werden. Soweit ich das beurteilen kann ist das bei Dir nicht der Fall, da jedes Mal der Maximal-Wert ermittelt werden soll.

Birgitta