電子書籍の厳選無料作品が豊富!

動的SQLで、DBの件数を取得したいのですが、
うまく取得できず困っています。
教えてください!

以下の様に、記述しているのですが取り方間違っていますか?

EXEC SQL EXECUTE statment INTO :CNTNUM;
PREPEAした、statmentには
SELECT COUNT(*) FROM テーブル名 where kbn = 3;
と、ごくごく普通のSELECT COUNT文です。

cnt_numは、int型のホスト変数で宣言しています。
デバックしながら実行すると、cnt_numの値は初期化した時の
0のままです。実際取得した件数が0件なのかもと思い
初期化時に3を代入して実行したら、やはり値は3でした。
なので、件数が取得出来ていないようです。
オラクルエラーにもならず、次の処理へ流れていってしまいます。

知っている方、教えてください。

A 回答 (1件)

動的SQLはあまり使わない上、Pro*Cでくらいしか使ったことがないんで、


かなりうろ覚えですが・・・。

INTOのところをUSINGにして、
INTOはFETCHで使ってみてください。

もしくは、PREPARE →DECLARE →OPEN→FETCH →CLOSEの順でやってみてください。
    • good
    • 0

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