Das ist genauso wie beim klassischen READ.
%EOF wird erst nach dem Read gemeldet, wenn keine Daten gelesen wurden.
So verhält es sich nun auch mit dem Status 02000.

Meine Lösung mit der Zwischentabelle war auch deshalb erforderlich um DISTINCT-Daten zu erstellen (Unique Key Constraint).
Wenn DISTINCT aber erst nach dem Bereitstellen abgefragt wird, dauert das Ganze eben länger, da man ja nicht auf bereits returnierte Daten zugreifen kann.
Kommt halt immer darauf an, was man gerade benötigt.