كيفية التحقق مما إذا كان مؤشر المرجع يرجع البيانات من إجراء PL/SQL
-
27-09-2019 - |
سؤال
أود أن أعرف كيفية التحقق مما إذا كان مؤشر المرجع يرجع البيانات.
لنفترض أن لدي الرمز التالي في حزمة 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 ، لكنني بحاجة أيضًا إلى القيام بشيء عندما يجد فو بعض البيانات.
أريد إعادة استخدام الاستعلام في أماكن قليلة ، لكنني لا أعتقد أن هذا سيكون مرشحًا جيدًا للوجهة نظر.
ما هي أفضل طريقة لمعرفة ما إذا كان فو يجد شيئًا؟
شكرًا.
المحلول
الطريقة الوحيدة لمعرفة ما إذا كان قد وجد شيئًا ما هو الجلب منه:
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