Вы можете добавить аналитику COUNT
к вашему запросу, чтобы число строк в наборе результатов было доступно в каждой строке, которую вы выбираете из курсора
Declare
Cursor pqr is
select p_id,u_id,comments
from (Select p_id,u_id,comments,count(*) over () cnt
from abc
where p_id=123)
where cnt > 1;
Begin
Вероятно, нетТем не менее, если вам это удастся, вы получите много.Вы заставляете Oracle материализовать весь набор результатов, чтобы подсчитать количество строк, что может замедлить выполнение кода.Вы также добавляете еще один столбец к каждой строке в наборе результатов, что увеличит использование памяти.И вам все еще нужно выбрать первую строку, чтобы получить доступ к столбцу CNT
.
Какую бизнес-задачу вы пытаетесь решить, требующую, чтобы вы знали, сколько строк будет извлечено до вас?получить все строки?Это не то, что обычно необходимо, так что, возможно, есть лучший способ решить любую проблему, с которой вы столкнулись.