Trick question.
DBMS_SQL.EXECUTE doesn't fetch any rows. In fact, for a SELECT it doesn't really do anything much.
Basically, you need to fetch all the rows before you know how many rows you are going to fetch.

Or at least fetch one row, with a nice analytic function to tell you how many rows will be fetched, such as :
SELECT table_name, column_name, COUNT(*) OVER ()
FROM user_tab_columns