SQL-Fehler können nicht mit Monitor abgefangen werden, dafür ist der SQLCODE zuständig.

Dein Problem ist wohl, dass die Where-Klausel ab und zu eben mehr als einen Datensatz liefert.
In diesem Fall schlägt der SQL fehl und liefert lieber keine Daten.

Du hast mehrere Möglichkeiten:

select ....
fetch first 1 rows only

Damit wird einfach nur der 1. Datensatz gelesen, egal ob es mehrere gibt.

Select Min(Feld1) into ...

nimm halt den kleinsten Wert, alternativ geht natürlich auch MAX/SUM/AVG/...

Oder prüfe die Daten besser, warum ggf. mehr da ist als du erwartest.