Как проверить, возвращает ли REF курсор возвращает данные из процедуры PL / SQL
-
27-09-2019 - |
Вопрос
Я хотел бы знать, как проверить, возвращает ли Ref Cursor.
Допустим, у меня есть следующий код в пакете PL / SQL:
type refcursor is ref cursor;
procedure Foo(cursorresult out refcursor) is
begin
open cursorresult for
select *
from table t
inner join t2 on t.id = t2.id
where t.column1 is null;
end;
procedure DoSomeghingIfFooHasResults is
curFoo refcursor;
begin
Foo(curSansOwner);
if curFoo%found then
-- Do something
end if;
end function;
Этот код используется в более вовлеченном процессе, и запрос в FOO использует несколько таблиц.
Мне нужны данные, возвращенные из FOO в приложении ASP.NET, но мне также нужно что-то сделать, когда Foo находит некоторые данные.
Я хочу повторно использовать запрос в нескольких местах, но я не думаю, что это будет хорошим кандидатом на вид.
Что было бы лучшим способом знать, если Foo что-то находит?
Спасибо.
Решение
Единственный способ узнать, что он нашел что-то, это привлечь из него:
procedure DoSomeghingIfFooHasResults is
curFoo refcursor;
recFoo mytable%ROWTYPE;
begin
Foo(curFoo);
fetch curFoo into recFoo;
if curFoo%found then
-- Do something
end if;
end function;
Не связан с StackOverflow