SEARCH 关键字
01 WK-DATA-SAMPLE.
05 WK-DATA1 PIC X(04) VALUE "AAAA".
05 WK-DATA2 PIC X(04) VALUE "BBBB".
05 WK-DATA3 PIC X(04) VALUE "CCCC".
05 WK-DATA4 PIC X(04) VALUE "DDDD".
01 WK-DATA-SAMPLE-R REDEFINES WK-DATA-SAMPLE.
05 WK-TABLE OCCURS 4 TIMES INDEXED BY WK-IDX.
10 WK-NODE1 PIC X(02).
10 WK-NODE2 PIC X(02).
01 WK-SEARCH-RESULT PIC X(01).
88 WK-FOUND VALUE "Y".
88 WK-NOT-FOUND VALUE "N".
SET WK-IDX TO 1.
SEARCH WK-TABLE
AT END SET WK-NOT-FOUND TO TRUE
WHEN WK-NODE1(WK-IDX) = "AA"
SET WK-FOUND TO TRUE
WHEN WK-NODE2(WK-IDX) = "AA"
SET WK-FOUND TO TRUE
END-SEARCH.
SQLCBL CURSOR
EXEC SQL
DECLARE POLLIST CURSOR FOR
SELECT
FIELD1,
FIELD2..
FROM TABLE1
WHERE ..
END-EXEC.
EXEC SQL
OPEN POLLIST
END-EXEC.
PERFORM UNTIL SQLSTATE NOT = ZEROS
EXEC SQL
FETCH POLLIST INTO
:WK-FIELD1,
:WK-FIELD12..
END-EXEC
IF SQLSTATE = ZEROS
Statement to process WK-FIELD1..
END-IF
END-PERFORM.
EXEC SQL
CLOSE POLLIST
END-EXEC.
ACCEPT 关键字
一般格式:ACCEPT 标识符 [FROM 助忆名]
ACCEPT后只能有一个标识符,标识符可以是组合项。
FROM 助忆名:指定环境中特定的设备,助忆名需要在环境部中定义。
CONFIGRATION SECTION.
SPECIAL-NAMES.
CONSOLE IS ABC.
ACCEPT T FROM ABC.//则表示要从控制台接收数据
ACCEPT TEST-DATE FROM DATE. //系统当前日期(YYMMDD)
ACCEPT TEST-DATE FROM DATE-YYYYMMDD. //系统当前日期(YYYYMMDD)
ACCEPT TEST-DATE FROM DAY. //一年中第几天(YYDDD)
ACCEPT TEST-DATE FROM DAY-OF-WEEK. //当天是星期几(W)
ACCEPT TEST-DATE FROM TIME. //系统当前时间(HHMMSS99)
原文链接:https://blog.csdn.net/weixin_42472027/article/details/118752790
COBOL中执行CL命令
01 WK-QCMDEXC-PARA.
05 WK-QCMDEXC-CMD PIC X(3000).
05 WK-QCMDEXC-LEN PIC 9(10)V9(05) COMP-3 VALUE 3000.
MOVE "OVRDSPF FILE(SSNAKE ) WAITRCD(1)" TO WK-QCMDEXC-CMD. CALL "QCMDEXC" USING WK-QCMDEXC-CMD WK-QCMDEXC-LEN.
DSPF 变量类型
P -- Packed Decimal DECIMAL
S -- Zoned Decimal NUMERIC
B -- Binary
F -- Floating Point
A -- Character
L -- Date
T -- Time
Z -- Time stamp
H -- Hexadecimal
J -- DBCS-Only
E -- DBCS-Either
O -- DBCS-Open
G -- DBCS-Graphic
5 -- Binary Character
Y -- Numeric
COBOL 变量类型
当PF中的数字类型定义 13P 2,如果使用COPY DD-R001,COBOL中对应的数字类型定义为 PIC S9(11)V9(2) COMP-3.
PIC Z(8)9.99 是一种字符类型,不可以用于计算
Definition of COBOL linkage section
01 LINK-TSCASENUM PIC S9(04) COMP-3.
Variable . . . . . . . . . . . . . . . : 01 LINK-TSCASENUM
Type . . . . . . . . . . . . . . . . : PACKED
Length . . . . . . . . . . . . . . . : 4 0
'F0F0F0'
CPD1901 Variable contains invalid decimal data.
Definition of PF
TSCASENUM 4S 0
Variable . . . . . . . . . . . . . . . : 06 TSCASENUM
Type . . . . . . . . . . . . . . . . : ZONED
Length . . . . . . . . . . . . . . . : 4 0
'40404040'
CPD1901 Variable contains invalid decimal data.
Variable . . . . . . . . . . . . . . . : 06 TSCASENUM
Type . . . . . . . . . . . . . . . . : ZONED
Length . . . . . . . . . . . . . . . : 4 0
' 1'
Dicimal data error occur when move TSCASENUM to LINK-TSCASENUM
Could update the definition of COBOL linkage section to fix the error
01 LINK-TSCASENUM PIC 9(04).
Variable . . . . . . . . . . . . . . . : 01 LINK-TSCASENUM
Type . . . . . . . . . . . . . . . . : ZONED
Length . . . . . . . . . . . . . . . : 4 0
' 1'