ページの先頭です。
ここから本文です。

よくあるご質問(サポートFAQ)

【COBOL Compiler Enterprise Edition】SQL文の展開による引数の数が異なるコンパイルエラーについて

質問内容

SQLで記述したプログラムをコンパイルするとエラーが出力されます。
000003 EXEC SQL
000004 SELECT COUNT(*)
000005 INTO :H-CNT
000006 FROM テーブル名
000007 WHERE 項目1 = :ホスト変数1
000008 END-EXEC
000009 W-CNT
COBOL85 for IPFではコンパイルエラーは出力されませんでした。
なぜコンパイルエラーが出力されるようになったのでしょうか。

回答内容

ソース中のSQL記述(03 EXEC SQL ~ 08 END-EXEC)をPro*COBOLで展開すると、「CALL "SQLBEX" USING A B C」のようなCOBOLソースになります。
これに続けて変数名(W-CNT)が記述されていると、「CALL "SQLBEX" USING A B C W-CNT」のように SQLBEXを4つの引数でCALLしていると解釈され個数の不一致になります。
プログラム中に引数の個数のパターンが複数ある際に、COBOL85 for IPFはエラーにしていないのに対し、COBOL V1はエラーにするように仕様が変更されたためコンパイルエラーが出力されるようになりました。
09行目を削除することによりコンパイルエラーは解消されます。

【確認済みのバージョン】すべて
【確認済みの対象OS】Red Hat Linux

製品名カテゴリ

COBOL

  • コンテンツID: 3150106347
  • 公開日: 2013年10月25日
  • 最終更新日:2013年10月25日

アンケート

サポート情報充実のためアンケートにご協力をお願いいたします。



コメント欄:
ここからページ共通メニューです。 ページ共通メニューを読み飛ばす。