
プログラミングでコンパイルエラーがでて困っています。
問題があったら 指摘していただきたいです。
IF文の条件に合致したときは上のSELECT文
合致しなかったときは下のSELECT文を実行するプログラム
コンパイルエラーの内容 条件中のオペランドに誤りがあります。
IF文の書き方が不完全です。
:VSL.MECIDENPYO_NO は定義がなされているものとします
IF :VSL.MECIDENPYO_NO NOT = SPACE
EXEC SQL
SELECT 抽出したい項目1,
抽出したい項目2,
抽出したい項目3,
抽出したい項目4
*
FROM テーブル名
*
WHERE
条件1
AND 条件2
AND 条件3
END-EXEC
ELSE
EXEC SQL
SELECT 抽出したい項目1,
抽出したい項目2,
抽出したい項目3,
抽出したい項目4
*
FROM テーブル名
WHERE
条件1
AND 条件2
END-EXEC
END-IF
No.3ベストアンサー
- 回答日時:
COBOLもEND-IFを使うならTHENが必要だったはず。
if ・・・ then
EXEC SQL ・・・END-EXEC
else
EXEC SQL ・・・END-EXEC
end if
また、data divisionに
:VSL.MECIDENPYO_NO
が定義されていない。
というより、:を含む項目名は定義できないので別の項目名にする必要がありますけれど。
(以上は一般的なCOBOLの文法のはず。といってもCOBOL85くらいまでしか知りませんが。)
No.4
- 回答日時:
IF :VSL.MECIDENPYO_NO NOT = SPACE
IF :VSL. に . が有るので
IF分がここで終わっていると判断されていると思われます。
変数名を変更するとOKでしょう
No.1
- 回答日時:
「項目」や「条件」と置き換わっていたり半角スペースや全角スペースが混じっていたりで、正確にどこが悪いのか判断が付きません。
どのコンパイラにも言えることですが、エラー内容はコンパイル時に問題が起きた箇所であって、それが問題の原因の箇所とは限りません。どこが間違っているか分からない場合は問題の切り分けをしてみましょう。
まずはIF文が正しいかを判断してみてください。
IF :VSL.MECIDENPYO_NO NOT = SPACE
ELSE
END-IF
のようにIF文のみにしてコンパイルしてみてください。
エラーがでなければIF文ではなく中身のSELECT文がおかしいことになります。
IF文のみでのコンパイルが通った場合は、そのIF文を一旦コメントアウトしておいて、TRUEだった場合の処理、FALSEだった場合の処理だけでそれぞれコンパイルしてみます。エラーになった箇所がありましたら、その部分を修正してIF文として組み立てなおしてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Oracle SQL update方法 2 2022/06/22 14:07
- Visual Basic(VBA) Sheet3から2つの条件でオートフィルターで抽出した個数をSheet2へ入力するマクロで、一つ目の 4 2023/01/12 23:40
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) Sheet2の日付をキーにオートフィルターで2023年1月のデータを抽出し、Sheet3へ書き出すた 2 2023/03/06 23:57
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
- PHP コメント機能に返信欄を矢印で追加したい 1 2022/05/09 21:17
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQLで特定の項目の重複のみを排...
-
リストビューの項目の内容を変...
-
VB6でActiveReport1.5Jを使って...
-
C# リストビューの値を取得
-
COBOLについて
-
フィルターかけた後、重複を除...
-
エクセルで最後の文字だけ置き...
-
差し込み後、元データを変更し...
-
外部参照してるキーを主キーに...
-
エクセルの関数について教えて...
-
for whichの使い方
-
EXISTSを使ったDELETE文
-
SELECT 文 GROUP での1件目を...
-
SQLServerで文字列の末尾からあ...
-
誰か教えてください
-
UPDATE文のWHERE条件に他のテー...
-
NOT INをNOT EXISTSで書き直したい
-
SQLで列名を変数にできないでし...
-
JavaScriptの定数名が取り消し...
-
Visual Basicでツリービューリ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQLで特定の項目の重複のみを排...
-
バッチでcsvファイルの指定のカ...
-
リストビューの項目の内容を変...
-
DataViewで複数条件の...
-
COBOLについて
-
php mysql で WHERE句内に変数...
-
初心者)DataGridViewの入力桁...
-
fgetcsvでCSVを取得した際のnul...
-
COBOL プログラミング
-
C# リストビューの値を取得
-
jQueryで、カラム幅を変更でき...
-
C#: ソースコードから16進数の...
-
[WHS]定数宣言の際にリテラル文...
-
一覧画面のカラムヘッダクリッ...
-
前回ご教授いただいたコードに...
-
¥編集てどうするのか教えてく...
-
ListViewの選択について
-
Zend_DBを使ったselectで文字が...
-
VB6でActiveReport1.5Jを使って...
-
DataGridView 右詰め
おすすめ情報