Beim DECLARE ist das nicht erforderlich, da der PreCompiler bereits einen vollständigen Syntax-Check durchführt.
Andere Fehler KÖNNEN erst zur Laufzeit, sprich nach OPEN bzw. FETCH auftreten (CLOSE nicht vergessen).

Einen DECLARE / OPEN / FETCH / CLOSE benötigst du nicht, wenn der Select nur 1 Datensatz zurück gibt.
In diesem Fall reicht ein:

SELECT F1, F2, F3, ... into :F1, :F2, :F3, ...

Selbst wenn mehrere Sätze erwartet werden, kann eine Struktur verwendet werden:

ISTRU_____DS______10
I_______________1__5_F1
I_______________6_10_F2
:
:

SELECT F1, F2 into STRU ....

Es dürfen allerdings nicht mehr Sätze herauskommen als über die Struktur definiert sind.
Die Sätze können dann über die OCUR-Anweisung angesprochen werden.