他の処理のための予備情報を取得するために使用されるカーソルがあります。カーソルをサポートするクエリが行を返さない可能性があります。これらのまれなケースでは、特別な例外を発生させて (処理が完全に停止しないように別の場所で処理およびログを記録します)、ユーザーが何が最も可能性が高いかを知ることができます。入力が悪い。外観は次のとおりです。
open c_getPrs(in_pnum);
loop
fetch c_getPrs
into r_rpmRecord;
if c_getPrs%NOTFOUND then
raise X_INVALID_PNUM;
end if;
exit when c_getPrs%rowcount > 1 /*or c_getPrs%NOTFOUND*/;
end loop;
close c_getPrs;
問題は、if ステートメントが常に実行されるため、行が返された場合でも常に例外が発生することです。理由はわかりません。この種のロジックを処理するためのより良い方法があれば、私もそれを受け入れます ;)