Warum so kompliziert?
Du brauchst keinen Cursor:

return (select ....);