1
私はレコードのリストを返す関数を持っていて、リストの上をループしてパイプしていますが、パイプ中にはORA-01403: no data found
エラーが発生しています。データが見つかりません
以下は使用しているコードですが、一部の行でこのエラーが発生していますが、すべてではありません。
注:tab_pipe.t_tab
およびtab.t_tab
は同じレコードtab.r_tab
の表です。
Function pipelinedFunction(ref varchar2, seq varchar2) Return tab_pipe.t_tab pipelined Is
pragma autonomous_transaction;
errtxt varchar2(400);
tab tab.t_tab;
begin
tab := generate_table(ref, seq);
for i in 1 .. tab.count loop
begin
pipe row(tab(i));
EXCEPTION
when others then
v_errtxt := sqlerrm;
insert into test_kc values('an error occurred piping the row i = ' || i || ' - sqlerrm = ' || v_errtxt); commit;
end;
end loop;
return;
end pipelinedFunction;
を使用してループを試してみてください。 '、あなたは特定のインデックスのレコードのすべてがnullの列値を持っていることを意味しますか? –
1からtab.countにループします。タブ(3)が存在しない可能性がありますか? generate_tableが何をしているのか分からなければ何も言いません。 – Rene
しかし、私は '' tab.count'を使用する前に 'tab.first .. tab.last'を使っていましたが、まだ同じ問題が発生していました。 この問題の原因となっているレコードのテーブルを生成する関数から何かがありますか? –