Du müsstest das dynamische SQL in einem Cursor verarbeiten. In eine Datei ausgeben musst du es nicht.
Wenn dein dynamisches SQL ein Count ist, wird dein cursor genau eine Zeile und eine Spalte haben. Du brauchst also keine Schleife:

Beispiel: (Die Variable String enthält dein SQL-Statement)

Code:

       // SQL-Anweisung validieren (unter dem Name "cmd"):
       exec sql prepare cmd from :string;


       // Cursor mit dem Namen "result" definieren:
       exec sql declare result cursor for cmd;


       // Cursor öffnen:
       exec sql open result;


       // Verarbeiten des Cursors (Es kann nur genau 1 Satz mit genau 1 Feld sein):
       exec sql fetch next from result into :ergebnis;


       // Cursor schließen:
       exec sql close result;

Tipp:
(Ich habe mir dafür ein Serviceprogramm geschrieben, das einen "count"-SQL-String bekommt und mir den Wert zurückliefert.)