I want to execute an SQL query and process its results inside a stored procedure without preventing query parallelism. Since I don't want to prevent query parallelism, cursors can't be used, and I would like to avoid creating a temporal table.
Is this possible? If so, what is the best way to execute the query, retrieve all results in memory, and process them inside the stored procedure?
You must use create table as if you want a result that is both accessible to subsequent statements and uses parallelism to be produced. There is no saving results into memory - you either save them explicitly or iterate over them and the later prevents parallelism as you've noted.