Das geht voll in die Richtung dynamisches SQL.
Sauber wäre das mit SQLDA und FETCH using :MySqlda, aber das sprengt hier den Rahmen.

Was du vorhast geht natürlich, aber gepackte Felder können dann nur entpackt werden. Wenn du Vorzeichen und Komma benötigst, must du mit "char(mynum)" casten ansonsten reicht auch "digits(mynum)". Im Programm musst du ggf. mittels %dec() wirder zurückwandeln.

Ansonsten geht das so wie du dir das vorstellst.

Prepare...
Open ...
Fetch ...
Close ...