Насколько я могу судить, сделать это невозможно - не так просто.Вам придется выполнить один и тот же запрос дважды: один раз, чтобы отобразить результат (если есть), и еще раз, чтобы проверить, что этот запрос что-то возвратил или нет.
Это означает, что он будет намного медленнее,конечно (выполнение одного и того же запроса дважды).
Обходным путем может быть подготовка данных в отдельную таблицу (посмотрите, можете ли вы использовать глобальную временную таблицу) только один раз, а затем
- проверьте, содержит ли он какие-либо строки или нет
- просто
select * from that_table
(без каких-либо условий, поскольку вы уже сделали это, когда вставили в него данные)
Или, если интересующий вас запрос является простым и быстрым, просто используйте его в своей процедуре PL / SQL.Вам придется поддерживать один и тот же код в нескольких местах.Посмотрите, сможете ли вы создать функцию, которая возвращает таблицу, которая упростит вещи (вроде).