dポイントプレゼントキャンペーン実施中!

DBMS_SQL.EXECUTE()で動的SQLを発行したとき、
問合せ結果の件数は、どのようにすれば取得できるでしょうか。

できればSELECT COUNT(*)は発行しないで行いたいです。

動的SQLを発行した際に、取得結果が0件もしくはNULLが帰ってきた場合に例外処理を行いたい為です。


どなたかご存知の方いらっしゃいましたら、
ご教示の程宜しくお願い致します。

A 回答 (1件)

select文をDBMS_SQL.EXECUTEで実行する場合、DBMS_SQL.FETCH_ROWSを実行しないと実行結果を取得できません。

初回のDBMS_SQL.FETCH_ROWSはフェッチされた行数を返却するので、EXECUTE後の初回のFETCH_ROWS
の戻り値が0の場合、データが無いというように判断できるのではないでしょうか?

DML文をDBMS_SQL.EXECUTEで実行すると影響された件数がDBMS_SQL.EXECUTEの戻り値になります。

#SELECT文を発行するなら、私ならカーソル変数を使いますけど・・・。
    • good
    • 0
この回答へのお礼

返事が遅れまして申し訳ございません。

PL/SQLをはじめたばかりなので、まだカーソル変数など理解が及ばない点がありますが、ご回答を参考にもう少し処理を練り直してみたいと思います。

簡単ではありますが、ご回答ありがとうございました。

お礼日時:2006/06/01 13:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!