В моем понимании, курсор НЕ является результатом. Вы можете использовать курсор, чтобы ПОЛУЧИТЬ свои результаты строка за строкой, и в конце этой строки за операциями строки вы знаете, сколько результатов вы получили.
Чтобы узнать, сколько записей вы (возможно) получите, вы можете использовать
select count(*) from ... where ...
при условии, что у вас есть индекс по имени столбца, вы также можете написать:
select count(name) from foo where name = 'ok'