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

ORACLEのDBへODBC経由でデータアクセスしています。
実行環境はWindows XP,開発言語はCOBOLです。
コンパイルは問題ないのですが、実行しますと、
動的SQLの使い方が間違っていますというようなメッセージが
出力されて異常終了します。(ちなみにカーソルオープンのところで終了)
下記のような動的SQLのコーディングですが、どこが問題なのでしょうか?
宜しくお願いします。

01 SQL-CSR0-DB21.
03 FILLER PIC X(35) VALUE 'SELECT M.*,ROWIDTOCHAR(M.ROWID) '.
03 FILLER PIC X(35) VALUE ' FROM DB21 M '.
03 FILLER PIC X(35) VALUE ' WHERE M.BCODE = ?   '.
78 SQL-CSR0-LEN VALUE 105.

          (中略)  

INITIALIZE DYNSTMT.
MOVE SQL-CSR0-DB21 TO DYNSTMT-ARR.
MOVE SQL-CSR0-LEN TO DYNSTMT-LEN.
EXEC SQL PREPARE STMT1 FROM :DYNSTMT END-EXEC.
EXEC SQL DECLARE CSR0_TN_DB21
CURSOR FOR STMT1 END-EXEC.
EXEC SQL OPEN CSR0_TN_DB21 USING
:BCODE_HST
END-EXEC.

A 回答 (2件)

>03 FILLER PIC X(35) VALUE ' WHERE M.BCODE = ?   '.



03 FILLER PIC X(35) VALUE ' WHERE M.BCODE = :V1   '.
つまり、置き換える値の指定を?ではなく:V1にしてみてください。

この回答への補足

:V1へ変更しましたが、ダメでした。
:V1は何の意味があるのでしょうか?

補足日時:2010/09/07 19:16
    • good
    • 0

未だに異常終了の展開から抜け出せないのでしょうか?

    • good
    • 0

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