- ベストアンサー
COBOLプログラミングでコンパイルエラーが発生!解決方法を教えてください
- COBOLプログラミングでコンパイルエラーが発生し、困っています。具体的にはIF文の条件に誤りがあり、書き方が不完全です。また、SELECT文の実行方法にも問題があります。正しい書き方や解決方法を教えていただきたいです。
- COBOLプログラミングにおいて、コンパイルエラーが発生しました。エラーの内容は、IF文の条件中のオペランドに誤りがあるというものです。また、IF文の書き方が不完全であることも指摘されています。詳細な問題点や解決策を教えてください。
- COBOLプログラミングでのコンパイルエラーに困っています。具体的には、IF文の条件に誤りがあり、書き方が不完全であるという問題があります。また、SELECT文の実行方法にも問題があります。正しい書き方や解決方法を教えていただけると助かります。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
COBOLもEND-IFを使うならTHENが必要だったはず。 if ・・・ then EXEC SQL ・・・END-EXEC else EXEC SQL ・・・END-EXEC end if また、data divisionに :VSL.MECIDENPYO_NO が定義されていない。 というより、:を含む項目名は定義できないので別の項目名にする必要がありますけれど。 (以上は一般的なCOBOLの文法のはず。といってもCOBOL85くらいまでしか知りませんが。)
その他の回答 (4)
- SaKaKashi
- ベストアンサー率24% (755/3136)
データベースとCOBOLのコンパイラの組み合わせにもよりますが、 たいていは、:で始まる変数を記述できるのはEXEC-SQLからEND-EXECの間だけなのです。 EXEC-SQLからEND-EXECの外では:始まりの変数は使えないので、 >IF :VSL.MECIDENPYO_NO NOT = SPACE ではなく IF VSL.MECIDENPYO_NO NOT = SPACE としてみてください。
お礼
ありがとうございます。無事コンパイルが通りました!!
- ricman
- ベストアンサー率58% (10/17)
IF :VSL.MECIDENPYO_NO NOT = SPACE IF :VSL. に . が有るので IF分がここで終わっていると判断されていると思われます。 変数名を変更するとOKでしょう
お礼
.ありがとうございます。無事コンパイルが通りました!! ..
- aenvgielle
- ベストアンサー率14% (128/893)
IFの後のはプログラムで定義しているデータ項目なんですよね? 「:」がついてるのはなぜでしょう? SQL文の中ではホスト変数につけますけど、こういう使い方はみたことがないような…
お礼
.ありがとうございます。無事コンパイルが通りました!! ..
- tunamelt
- ベストアンサー率75% (9/12)
「項目」や「条件」と置き換わっていたり半角スペースや全角スペースが混じっていたりで、正確にどこが悪いのか判断が付きません。 どのコンパイラにも言えることですが、エラー内容はコンパイル時に問題が起きた箇所であって、それが問題の原因の箇所とは限りません。どこが間違っているか分からない場合は問題の切り分けをしてみましょう。 まずはIF文が正しいかを判断してみてください。 IF :VSL.MECIDENPYO_NO NOT = SPACE ELSE END-IF のようにIF文のみにしてコンパイルしてみてください。 エラーがでなければIF文ではなく中身のSELECT文がおかしいことになります。 IF文のみでのコンパイルが通った場合は、そのIF文を一旦コメントアウトしておいて、TRUEだった場合の処理、FALSEだった場合の処理だけでそれぞれコンパイルしてみます。エラーになった箇所がありましたら、その部分を修正してIF文として組み立てなおしてください。
お礼
.ありがとうございます。無事コンパイルが通りました!! ..
お礼
.ありがとうございます。無事コンパイルが通りました!!