John,
I was suggesting that you forget the ref cursor, set up a cursor loop in the stored procedure do any grouping required there, and pass in any values needed in your PL/SQL WHERE or HAVING clauses as arguments to the stored procedure.
I asked about your Oracle version because depending on how many rows there are to fetch, you can get some really good performance optimization using tricks like array fetches (BULK COLLECT). 10g is supposed to automate this, but I haven’t checked into it yet. If you had any significant computation, native compilation would speed things up as well.
This will be MUCH faster than sucking rows 1-at-a-time into webMethods.