2

我想知道如何检查 ref 游标是否返回数据。

假设我在 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 中的查询使用多个表。

我需要在 asp.net 应用程序中从 Foo 返回的数据,但是当 Foo 找到一些数据时,我还需要做一些事情。

我想在几个地方重用查询,但我认为这不是一个很好的视图候选者。

知道 Foo 是否找到某些东西的最佳方法是什么?

谢谢。

4

1 回答 1

5

知道它是否找到了什么的唯一方法是从中获取:

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;
于 2010-10-28T15:30:07.230 回答