#db2 #cobol #mainframe
Вопрос:
С помощью этого кода COBOL:
IDENTIFICATION DIVISION.
PROGRAM-ID. DBNULLA.
DATA DIVISION.
WORKING-STORAGE SECTION.
EXEC SQL
INCLUDE SQLCA
END-EXEC.
EXEC SQL
INCLUDE PATIENT
END-EXEC.
PROCEDURE DIVISION.
MAIN-PARA.
DISPLAY 'SAMPLE STRUCTURE OF COBOL DB2 PRORGRAM'.
DISPLAY 'WE ARE CHECKING NULL HERE '.
MOVE 100 TO PAT-ID.
EXEC SQL
SELECT PAT_ID,PAT_NAME,WARD_NAME INTO :PAT-ID,:PAT-NAME,
:WARD-NAME FROM PATIENT WHERE PAT_ID = :PAT-ID
END-EXEC.
IF SQLCODE = 0
DISPLAY 'HI'
ELSE
DISPLAY 'EMBEDDED SQL SQLCODE:' SQLCODE
END-IF.
STOP-RUN.
При его выполнении я получаю следующий вывод:
SAMPLE STRUCTURE OF COBOL DB2 PRORGRAM
WE ARE CHECKING NULL HERE
HI
IGZ0037S The flow of control in program DBNULLA proceeded beyond the last line of the program.
From compile unit DBNULLA at entry point DBNULLA at compile unit offset 000006E4 at entry offset 000006E4
at address 1E5016E4.
Я не понимаю, почему поток контроля выходит за рамки последней строки. Я уже добавил STOP RUN
.
Пожалуйста, помогите решить эту проблему.
Комментарии:
1. Ваша ОСТАНОВКА-это название абзаца. Как упоминал @cschneid, инструкция STOP RUN начинается в столбце 12.
Ответ №1:
Вы неправильно закодировали STOP-RUN
. Вместо этого закодируйте STOP RUN
утверждение.
Комментарии:
1. … и должен быть помещен в область-B (колонка 12 — 72)