質問: カーソル0件の時にエラーを発生させる 以下の処理をしようと考えています。 aテーブルをカーソルで検索 →0件だった場合にはエラー ・・・ (1) →データが入っていた場合には処理 →カーソルのデータがなくなったら処理を正常終了 カーソルに入っているデータが0件だった場合、oracle上ではエラーとはみなされず、処理が正常終了してしまいます。 カーソルデータが0件だった場合にエラーを発生させるにはどのようにコーディングすればよいですか?
回答: 最初のfetchをループの外ですればいいのでは。 open cur1; fetch cur1 into rec1; if cur1%notfound then close cur1; raise no_data_found; end if; loop --処理 fetch cur1 into rec1; exit when cur1%notfound; end loop; close cur1;