1. In einer Stored Procedure oder User Defined Table Function wird auf eine View wie auf eine Tabelle zugegriffen.
2. Bei einer UDTF werden die Ergebnisse normalerweise durch ein SELECT-Statement in Verbindung mit dem RETURN ausgegeben.
3. Sofern eine Einzelsatz-Verarbeitung innerhalb der UDTF notwendig ist, weil zunächst Aktionen auf Satz-Ebene erforderlich sind, kann ein ganz normaler Cursor definiert und verarbeitet werden. Die einzelnen Zeilen werden mit dem SQL-Befehl PIPE ausgegeben. Beim Return darf in diesem Fall KEIN SELECT-Statement angegeben werden.
4. Bei einer Stored Procedure wird ein Result Set dardurch ausgegeben, dass ein Cursor definiert und innerhalb der Stored Procedure geöffnet, jedoch nicht geschlossen wird. Das Schließen des Cursors muss in dem rufenden Programm (RPG oder andere Programmiersprache oder auch SQL) erfolgen.

Die bessere Lösung ist m.E. eine UDTF, da beim Aufruf noch Feld-Auswahlen, zusätzliche WHERE-Bedingungen und Order-By Anweisungen angegeben werden können.
Bei der Verarbeitung eines Result-Sets müssen alle Spalten und Sätze in der Reihenfolge wie ausgegeben verarbeitet werden. Ist eine andere Reihenfolge erforderlich oder sind nicht alle Zeilen relevant ist zusätzlicher Programmieraufwand erforderlich.