Ok, como sabes, en db2/400 los recordsets deben ser declarados en un cursor, de tal manera que al hacer el open, el Sp devolverá los resultados.
Esto funciona así con las consultas definidas, pero en tu caso al ser una consulta dinámica, la función del cursor la hace el prepare.
. Puedes checar la documentación de Db2 en el Sitio de Ibm, con respecto al prepare y al exec. y veras que es como te lo acabo de ejemplificar.
Suerte.