• 締切済み

動的SQLのCOUNTのとり方

動的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でした。 なので、件数が取得出来ていないようです。 オラクルエラーにもならず、次の処理へ流れていってしまいます。 知っている方、教えてください。

みんなの回答

回答No.1

動的SQLはあまり使わない上、Pro*Cでくらいしか使ったことがないんで、 かなりうろ覚えですが・・・。 INTOのところをUSINGにして、 INTOはFETCHで使ってみてください。 もしくは、PREPARE →DECLARE →OPEN→FETCH →CLOSEの順でやってみてください。