COBOL COBOL — VMS COBOL_5.0
Invokes the VAX COBOL compiler to compile a COBOL source program. See the
VAX COBOL User's Manual and VAX COBOL Reference Manual for
additional information.
Format -
COBOL [/command-qualifier]... {file-spec [/file-qualifier]... }...
Additional information available:
IDENTIFICATION_DIVISIONENVIRONMENT_DIVISIONDATA_DIVISION
PROCEDURE_DIVISION
release notesmiscellaneous topicsCOPY statementREPLACE statement
ErrorsParametersQualifiers
release notes
The release notes for the latest installed version of VAX COBOL are located in SYS$HELP:COBOLvvv.RELEASE_NOTES. (Where vvv = the installed version number) These release notes contain information regarding restrictions, restrictions removed, version-to-version incompatibilities, known problems, problems corrected, and functional enhancements for VAX COBOL.
miscellaneous topics
Additional information available:
literalsmeta-languageprogram componentssource reference format
special registers
literals
A literal is a character-string whose value is specified by: 1) the ordered set of characters it contains, or 2) a reserved word that is a figurative constant. Every literal belongs to one of two types: numeric or nonnumeric.
Additional information available:
figurative constantshexadecimal literalsnonnumeric literalsnumeric literals
floating point literals
figurative constants
Figurative constants name and refer to specific constant values generated by the compiler. The singular and plural forms of figurative constants are equivalent and interchangeable. The figurative constants supported by VAX COBOL are ZERO, ZEROS, ZEROES, SPACE, SPACES, HIGH-VALUE, HIGH-VALUES, LOW-VALUE, LOW-VALUES, QUOTE, QUOTES, ALL literal, and symbolic-character.
hexadecimal literals
A hexadecimal literal (a DIGITAL extension to nonnumeric literals) is
a character string of 2 to 256 hexadecimal digits. It is delimited on
the left by the separator 'X' (or 'x') immediately followed by a
quotation mark (") or apostrophe ('); on the right it is delimited by a
matching quotation mark or apostrophe. The character string consists
only of pairs of hexadecimal digits representing a value ranging from
00 to FF; hence, only the characters '0' through '9', 'A' through 'F',
and 'a' through 'f' are valid.
The value of a hexadecimal literal is the composite value of the paired
hexadecimal representations. The compiler truncates hexadecimal
literals to a maximum of 128 hexadecimal representations (pairs of
hexadecimal digits).
A hexadecimal literal can be used interchangeably wherever a nonnumeric
literal can appear in VAX COBOL syntax. (Note that hexadecimal
literals cannot be used as operands in arithmetic statements.)
nonnumeric literals
A nonnumeric literal is a character-string of 0 to 256 characters. It
is delimited on both ends by quotation marks (") or apostrophes ('). A
nonnumeric literal delimited by apostrophes is treated in the same
manner as a nonnumeric literal delimited by quotation marks.
The value of a nonnumeric literal is the value of the characters in the
character-string. It does not include the quotation marks (or
apostrophes) that delimit the character-string. All other punctuation
characters in the nonnumeric literal are part of its value.
The compiler truncates nonnumeric literals to a maximum of 256
characters.
numeric literals
A numeric literal is a character-string of 1 to 20 characters selected from the digits 0 through 9, the plus sign, the minus sign, and the decimal point. The value of a numeric literal is the algebraic quantity represented by the characters in the literal. Its size equals the number of digits in the character-string.
floating point literals
A floating point literal is a character-string whose value is specified by 4 to 24 characters selected from the digits 0 to 9, the plus sign, the minus sign, the decimal point and the letter E (upper or lower case). The value of a floating point literal is the algebraic quantity represented by the characters in the literal that precede the "E" multiplied by ten raised to the power of the algebraic quantity represented by the characters in the literal following the "E".
meta-language
The COBOL meta-language describes COBOL syntax. Meta-language elements appear in formats, but they are not part of a source program.
Additional information available:
bracesbracketschoice indicatorsellipsislowercase words
special-character wordsuppercase words
braces
Braces ({}) indicate that you must select one (but no more than one) of
the enclosed entries. If one of the entries contains only reserved
words that are not key words, that entry is the default option when no
other entry is selected.
brackets
Brackets ([]) enclose an optional part of a general format. When they enclose vertically stacked entries, brackets indicate that you can select one (but no more than one) of the enclosed entries.
choice indicators
If choice indicators, {| |}, enclose part of a general format, you must
select one or more of the enclosed entries (in any order). However, no
entry can be used more than once.
ellipsis
In general formats, the ellipsis (...) allows repetition of a part of
the format.
To determine which part of the format can be repeated:
1) Find the ellipsis.
2) Scanning to the left, find the first right delimiter, either ]
or }.
3) Continuing to the left, find its logically matching left
delimiter, either [ or {.
The ellipsis applies to the part of the format between the matched pair
of delimiters.
lowercase words
Lowercase words are generic terms. They indicate entries the programmer must provide. Lowercase words can represent COBOL words, literals, PICTURE character-strings, comment-entries, function arguments, or complete syntactical entries.
special-character words
The following special-character words are not underlined in general
formats but are required where they appear:
colon (:) single (=) and double (==) equal signs
period (.) left (() or right ()) parenthesis
plus sign (+) left (<) or right (>) angle bracket
minus sign (-) single (*) and double (**) asterisk
slash (/)
uppercase words
Underlined uppercase words are key words. A key word is required and must be spelled correctly when it is included in the source program. Uppercase words not underlined are optional. They serve only to improve the source program's readability.
program components
A COBOL program is made up of a number of different components. These are listed alphabetically.
Additional information available:
clausecontained programdivisionend of programparagraph
phraseprogram organizationsectionsentenceseparatorssource-program
statementword
clause
A subdivision of a COBOL sentence; an ordered set of consecutive COBOL character-strings that specifies an attribute of an entry.
contained program
A COBOL source program that is directly or indirectly contained in another COBOL source program.
division
A division is a collection of one or more sections or paragraphs. Each of the four divisions consists of a division header and division body. A division header identifies and marks the beginning of a division. It is a specific combination of reserved words followed by a separator period.
end of program
The end of a COBOL source program is indicated either by the end of that program's Procedure Division or by the END PROGRAM header. Format - END PROGRAM program-name program-name must contain 1 to 31 characters and follow the rules for user-defined words. It must be identical to a program-name declared in a preceding PROGRAM-ID paragraph.
paragraph
A paragraph consists of a paragraph header or paragraph-name (depending on the division) followed by zero, one, or more entries (or sentences). A paragraph header is a reserved word followed by a separator period. Paragraph headers identify paragraphs in the Identification and Environment Divisions. A paragraph-name is a user-defined word followed by a separator period. Paragraph-names identify Procedure Division paragraphs.
phrase
An ordered set of one or more consecutive COBOL character-strings that forms part of a clause or procedural statement.
program organization
identification-division [ environment-division ] [ data-division ] [ procedure-division ] [ source-program ] ... [ end-program-header ]
section
A section is a set of zero, one, or more paragraphs or entries (called a section body) that follows a section header and related section body. A section header identifies and marks the beginning of a section in the Environment, Data, and Procedure Divisions. In the Environment and Data Divisions, a section header is a specific combination of reserved words followed by a separator period. In the Procedure Division, a section header is a user-defined word followed by the word SECTION (and an optional segment-number). A separator period always follows a section header.
sentence
A sequence of one or more statements, the last of which ends with a separator period.
separators
A separator delimits character-strings. It can be one character or two
contiguous characters. The following characters are recognized as
separators:
space ( ) quotation mark (")
comma (,) apostrophe (')
semicolon (;) pseudo-text delimiter (==)
period (.) horizontal tab
colon (:) left (() or right ()) parenthesis
source-program
represents a contained (nested) COBOL source program. It begins with the Identification Division, a COPY statement or a REPLACE statement. It ends with the END PROGRAM header or the end of the Procedure Division.
statement
In the Procedure Division, a syntactically valid combination of words and symbols that begins with a verb.
word
A character-string of not more than 31 characters that forms one of the following: function-name A COBOL word that names a mechanism provided to determine the value of a function. reserved word A COBOL word specified in the list of words that can appear in a COBOL program. A reserved word cannot appear in a program as a user-defined word or system-name. system-name A COBOL word that has already been defined by the implementor to refer to the program's operating environment. text-word A character (or a sequence of characters) in a COBOL library, source program, pseudo-text, or dictionary that is subject to certain restrictions. user-defined word A COBOL word that must appear in the source program to satisfy the format of a clause or statement. verb A word that causes the compiler or object program to take action.
source reference format
The VAX COBOL compiler recognizes two source program formats: ANSI and terminal.
Additional information available:
ANSI format
ANSI format conforms to the American National Standard COBOL reference
format. It describes COBOL programs in terms of character positions on
an input line. A source program line has 80 character positions:
Margin L C A B R
| | | | |
+--------------------------------------------------+
column | 1 - 6 | 7 | 8 - 11 | 12 - 72 | 73 - 80 |
+--------------------------------------------------+
| | | | |
| | Area A Area B Identification Area
| |
| Indicator Area
|
Sequence Number Area
The compiler expects ANSI format only when the command line includes
the /ANSI_FORMAT qualifier.
terminal format
The VAX COBOL terminal format shortens program preparation time and reduces storage space for source programs. There is no sequence number or identification area, and the indicator area is combined with Area A.
special registers
Compiler-generated storage areas primarily used to store information relating to specific COBOL features. These are of three types: (1) Database, (2) Report Writer, and (3) Record Management.
Additional information available:
1_DB-CONDITION2_DB-CURRENT-RECORD-ID3_DB-CURRENT-RECORD-NAME
4_DB-KEY5_DB-UWA6_LINAGE-COUNTER7_LINE-COUNTER8_PAGE-COUNTER
9_RMS-CURRENT-FILENAME10_RMS-CURRENT-STS11_RMS-CURRENT-STV
12_RMS-FILENAME13_RMS-STS14_RMS-STV
1_DB-CONDITION
A database special register whose value indicates either a successful condition or an exception condition.
2_DB-CURRENT-RECORD-ID
A database special register containing the subschema user ID number (UID) of the record type of the current record of the run unit. It contains zero if there is no current record of the run unit.
3_DB-CURRENT-RECORD-NAME
A database special register containing the name of the record type of the current record of the run unit. It contains spaces if there is no current record of the run unit.
4_DB-KEY
A database special register that holds the dbkey of the record accessed by the last FETCH, STORE or FIND statement. This special register can be used to fine tune storage strategies in the database.
5_DB-UWA
A database special register containing the user work area (UWA). The UWA is the record delivery area that is used by the DBCS to make data items available to your program.
6_LINAGE-COUNTER
A special register whose value points to the current position in the page body.
7_LINE-COUNTER
A Report Writer special register whose value points to the current line in the current page.
8_PAGE-COUNTER
A Report Writer special register whose value points to the current page in a report.
9_RMS-CURRENT-FILENAME
A Record Management Services (RMS) exception condition register containing the name of the file causing the exception condition. This register is implicitly associated with the file most recently operated on by an I/O statement.
10_RMS-CURRENT-STS
A Record Management Services (RMS) exception condition register. It contains the primary RMS status value of an I-O operation. This register is implicitly associated with the file most recently operated on by an I/O statement. RMS-CURRENT-STV is the secondary value.
11_RMS-CURRENT-STV
A Record Management Services (RMS) exception condition register. It contains the secondary RMS status value of an I-O operation. This register is implicitly associated with the file most recently operated on by an I/O statement. RMS-CURRENT-STS is the primary value.
12_RMS-FILENAME
A Record Management Services (RMS) exception condition register containing the name of the file causing the exception condition. At any point in time, this register must be explicitly associated with a particular file.
13_RMS-STS
A Record Management Services (RMS) exception condition register. It contains the primary RMS status value of an I-O operation. At any point in time, this register must be explicitly associated with a particular file. RMS-STV is the secondary value.
14_RMS-STV
A Record Management Services (RMS) exception condition register. It contains the secondary RMS status value of an I-O operation. At any point in time, this register must be explicitly associated with a particular file. RMS-STS is the primary value.
IDENTIFICATION_DIVISION
The IDENTIFICATION DIVISION marks the beginning of a COBOL program. It
also identifies a program and its source listing.
Format -
IDENTIFICATION DIVISION.
PROGRAM-ID. program-name [IS {| INITIAL |} PROGRAM ][WITH IDENT id-str] .
[ {| COMMON |} ]
[ AUTHOR. [comment-entry] ... ]
[ INSTALLATION. [comment-entry] ... ]
[ DATE-WRITTEN. [comment-entry] ... ]
[ DATE-COMPILED. [comment-entry] ... ]
[ SECURITY. [comment-entry] ... ]
Additional information available:
PROGRAM-ID
The PROGRAM-ID paragraph identifies a program.
Format -
PROGRAM-ID. program-name [IS {| INITIAL |} PROGRAM ][WITH IDENT id-str].
[ {| COMMON |} ]
Additional information available:
program-name
identifies a COBOL source program.
id-str
identifies a literal string to be included in the object module generated by the compilation, for identification.
AUTHOR
The AUTHOR paragraph is for documentation only. Format - AUTHOR. [comment-entry] ...
Additional information available:
comment-entry
Comment-entry can consist of any combination of characters from the computer character set. Comment-entries can span several lines in Area B. However, they cannot be continued by using a hyphen in the indicator area. The end of comment-entry is the line before the next entry in Area A.
ENVIRONMENT_DIVISION
The Environment Division describes the program's physical environment. It
also specifies input-output control and describes special control
techniques and hardware characteristics.
Format -
[ ENVIRONMENT DIVISION.
[ CONFIGURATION SECTION.
[ SOURCE-COMPUTER. [source-computer-entry] ]
[ OBJECT-COMPUTER. [object-computer-entry] ]
[ SPECIAL-NAMES. [special-names-entry] ] ]
[ INPUT-OUTPUT SECTION.
FILE-CONTROL. {file-control-entry} ...
[ I-O-CONTROL. [input-output-control-entry] ] ] ]
Additional information available:
SOURCE-COMPUTEROBJECT-COMPUTERSPECIAL-NAMESFILE-CONTROL
I-O-CONTROL
SOURCE-COMPUTER
The SOURCE-COMPUTER paragraph specifies the computer on which the source
program is to be compiled.
Format -
SOURCE-COMPUTER. [ { VAX } [WITH DEBUGGING MODE] . ]
[ { computer-type } ]
Additional information available:
computer-type
is a user-defined word that names the computer.
OBJECT-COMPUTER
The OBJECT-COMPUTER paragraph describes the computer on which the program
is to execute.
Format -
OBJECT-COMPUTER. [ { VAX }
[ { computer-type }
[ { WORDS } ]
[ MEMORY SIZE integer { CHARACTERS } ]
[ { MODULES } ]
[ PROGRAM COLLATING SEQUENCE IS alphabet-name ]
[ SEGMENT-LIMIT IS segment-number] . ]
Additional information available:
computer-typealphabet-namesegment-number
computer-type
is a user-defined word that names the computer.
alphabet-name
is the name of a collating sequence defined in the ALPHABET clause of the SPECIAL-NAMES paragraph.
segment-number
is an integer from 1 through 49.
SPECIAL-NAMES
The SPECIAL-NAMES paragraph: (1) associates compiler features and VAX/VMS
logical names with user-defined mnemonic-names, (2) defines
symbolic-characters, (3) specifies the currency sign, (4) selects the
decimal point, and (5) relates alphabet-names to character sets or
collating sequences.
Format -
SPECIAL-NAMES. [
[ { CARD-READER } ]
[ { PAPER-TAPE-READER } ]
[ { CONSOLE } IS device-name ]
[ { LINE-PRINTER } ]
[ { PAPER-TAPE-PUNCH } ]
[ { C01 } ]
[ ] ...
[ { IS switch-name
[ON STATUS IS cond-name] [OFF STATUS IS cond-name] } ]
[ { IS switch-name
[OFF STATUS IS cond-name] [ON STATUS IS cond-name] } ]
[SWITCH switch-num { ON STATUS IS cond-name
[OFF STATUS IS cond-name] } ]
[ { OFF STATUS IS cond-name
[ON STATUS IS cond-name] } ]
[ { ASCII } ]
[ { STANDARD-1 } ]
[ { STANDARD-2 } ]
[ALPHABET alphabet-name IS { NATIVE } ] ...
[ { EBCDIC } ]
[ { {first-literal
[ { THRU } last-literal ] } ... } ]
[ { THROUGH } ] } } ]
[ { ALSO lit } ... ] } } ]
[SYMBOLIC CHARACTERS {{{symbolic-char} ... { IS } {char-val} ... } ...
{ { ARE } }
[IN alphabet-name] } ... ] ...
[CLASS class-name IS {first-literal [{THROUGH} last-literal]} ]
[ { [{THRU } ]} ... ] ...
[CURRENCY SIGN IS char]
[DECIMAL-POINT IS COMMA] . ]
Additional information available:
device-nameswitch-numswitch-namecond-namealphabet-namefirst-literal
last-literallitsymbolic-charchar-valclass-namechar
device-name
is a mnemonic-name for a device or the first line of a logical page (top-of-page). It always possesses the global attribute. Only the ACCEPT, DISPLAY, and WRITE statements can refer to it.
switch-num
is the number of a program switch. Its value can range from 1 through 16.
switch-name
is a mnemonic-name for the program switch.
cond-name
is a condition-name for the "on" or "off" status of the switch. It always possesses the global attribute. Its truth value is "true" when the STATUS phrase matches the status of the switch, "false" when it does not.
alphabet-name
is the user-defined word for a character set and/or collating sequence. It always possesses the global attribute.
first-literal
is a literal. It specifies: (1) the value of one or more alphabetic characters, or (2) the first in a range of values.
last-literal
is a literal. It specifies the last in a range of values.
lit
is a literal. It specifies an alphabetic character value.
symbolic-char
is a user-defined word that names the symbolic-character. It always possesses the global attribute. The same symbolic-char cannot appear more than once in the SYMBOLIC CHARACTERS clause.
char-val
is an integer that indicates the ordinal position of a character in the native character set.
class-name
is the user-defined word for a class. It always possesses the global attribute
char
is a one-character nonnumeric literal that specifies the currency symbol. It cannot be a symbolic character.
FILE-CONTROL
The FILE-CONTROL paragraph contains the file-related specifications.
Additional information available:
1format sequential2format relative3format indexed4format sort-merge
5format reportclauses
1format sequential
FILE-CONTROL.
Format 1 - Sequential File
SELECT [OPTIONAL] file-name
ASSIGN TO file-spec
[ RESERVE reserve-num [ AREA ] ]
[ [ AREAS ] ]
[ [ ORGANIZATION IS ] SEQUENTIAL ]
[ BLOCK CONTAINS [smallest-block TO] blocksize { RECORDS } ]
[ { CHARACTERS } ]
[CODE-SET IS alphabet-name]
[PADDING CHARACTER IS pad-char]
[RECORD DELIMITER IS STANDARD-1]
[ACCESS MODE IS SEQUENTIAL]
[FILE STATUS IS file-stat] .
2format relative
FILE-CONTROL.
Format 2 - Relative File
SELECT [OPTIONAL] file-name
ASSIGN TO file-spec
[ RESERVE reserve-num [ AREA ] ]
[ [ AREAS ] ]
[ ORGANIZATION IS ] RELATIVE
[ BLOCK CONTAINS [smallest-block TO] blocksize { RECORDS } ]
[ { CHARACTERS } ]
[RECORD DELIMITER IS STANDARD-1]
[ { SEQUENTIAL [RELATIVE KEY IS rel-key] } ]
[ ACCESS MODE IS { { RANDOM } RELATIVE KEY IS rel-key } ]
[ { { DYNAMIC } } ]
[FILE STATUS IS file-stat] .
3format indexed
FILE-CONTROL.
Format 3 - Indexed File
SELECT [OPTIONAL] file-name
ASSIGN TO file-spec
[ RESERVE reserve-num [ AREA ] ]
[ [ AREAS ] ]
[ ORGANIZATION IS ] INDEXED
[ BLOCK CONTAINS [smallest-block TO] blocksize { RECORDS } ]
[ { CHARACTERS } ]
[RECORD DELIMITER IS STANDARD-1]
[ { SEQUENTIAL } ]
[ ACCESS MODE IS { RANDOM } ]
[ { DYNAMIC } ]
[RECORD KEY IS rec-key [WITH DUPLICATES] [ASCENDING ] ]
[ [DESCENDING] ]
[ALTERNATE RECORD KEY IS alt-key [ WITH DUPLICATES ]
[ ASCENDING ] ]
[ DESCENDING ] ] ...
[FILE STATUS IS file-stat] .
4format sort-merge
FILE-CONTROL. Format 4 - Sort or Merge File SELECT file-name ASSIGN TO file-spec .
5format report
FILE-CONTROL.
Format 5 - Report File
SELECT file-name
ASSIGN TO file-spec
[ RESERVE reserve-num [ AREA ] ]
[ [ AREAS ] ]
[ [ ORGANIZATION IS ] SEQUENTIAL ]
[ BLOCK CONTAINS [smallest-block TO] blocksize { RECORDS }]
[ { CHARACTERS }]
[CODE-SET IS alphabet-name]
[PADDING CHARACTER IS pad-char]
[RECORD DELIMITER IS STANDARD-1]
[ACCESS MODE IS SEQUENTIAL]
[FILE STATUS IS file-stat] .
clauses
Additional information available:
ASSIGNBLOCK_CONTAINSCODE-SETORGANIZATIONPADDING_CHARACTER
RECORD_DELIMITERRESERVE
ASSIGN
The ASSIGN clause associates a file with a partial or a complete file specification. Format - ASSIGN TO file-spec
Additional information available:
file-spec
is a nonnumeric literal or a COBOL word formed according to the rules for user-defined names. It represents a partial or complete file specification.
BLOCK_CONTAINS
The BLOCK CONTAINS clause specifies the size of a physical record.
Format -
BLOCK CONTAINS [smallest-block TO] blocksize { RECORDS }
{ CHARACTERS }
Additional information available:
smallest-block
is an integer literal. It specifies the minimum physical record size.
blocksize
is an integer literal. It specifies the exact or maximum physical record size.
CODE-SET
The CODE-SET clause specifies the representation of data on external media. Format - CODE-SET IS alphabet-name
Additional information available:
alphabet-name
is the name of a character set defined in the SPECIAL-NAMES paragraph. It cannot be described with literals in the ALPHABET clause.
ORGANIZATION
The ORGANIZATION clause specifies a file's logical structure.
Format -
{ SEQUENTIAL }
[ ORGANIZATION IS ] { RELATIVE }
{ INDEXED }
PADDING_CHARACTER
The PADDING CHARACTER clause specifies the character to be used to pad blocks in sequential files. Format - PADDING CHARACTER IS pad-char
Additional information available:
pad-char
is a one-character nonnumeric literal or the data-name of a one-character data item. The data-name can be qualified.
RECORD_DELIMITER
The RECORD DELIMITER clause indicates the method of determining the length of a variable record on the external medium. It is for documentation only. Format - RECORD DELIMITER IS STANDARD-1
RESERVE
The RESERVE clause specifies the number of input-output buffers for a
file.
Format -
RESERVE reserve-num [ AREA ]
[ AREAS ]
Additional information available:
reserve-num
is an integer literal from 1 through 127. It specifies the number of input-output areas for the file.
I-O-CONTROL
The I-O-CONTROL paragraph specifies the input-output techniques to be
used for a file.
Format -
I-O-CONTROL.
[[ {| DEFERRED-WRITE |} ]
[[ {| EXTENSION extend-amt |} ]
[[ {| FILL-SIZE |} ]
[[ {| LOCK-HOLDING |} ]
[[APPLY {| MASS-INSERT |} ON {file-name} ... ] ...
[[ {|[CONTIGUOUS ]
[[ {|[CONTIGUOUS-BEST-TRY]
PREALLOCATION preall-amt |} ]
[[ {| PRINT-CONTROL |} ]
[[ {| WINDOW window-ptrs |} ]
[ [ RECORD ] ]
[SAME [ SORT ]AREA FOR {same-area-file} {same-area-file} ... ] ...
[ [ SORT-MERGE ] ]
[ { { [END OF] { REEL } } } ]
[ { { { UNIT } } OF file-name} ]
[RERUN [ON file-name] EVERY { { integer RECORDS } } ] ...
[ { integer CLOCK-UNITS } ]
[ { condition-name } ]
[MULTIPLE FILE TAPE CONTAINS {file-name [POSITION integer] } ... ] ...].]
Additional information available:
extend-amtpreall-amtwindow-ptrsfile-namesame-area-file
extend-amt
is an integer from 0 through 65535. It specifies the number of blocks in each extension of a disk file.
preall-amt
is an integer from 0 through 4,294,967,295. It specifies the number of blocks to initially allocate when the program creates a disk file.
window-ptrs
is an integer from 0 through 127. Its value can also be 255. It specifies the number of retrieval pointers in the window that maps the disk file.
file-name
names a file described in a Data Division file description entry.
same-area-file
names a file described in a Data Division File Description entry to share storage areas with every other same-area-file.
DATA_DIVISION
The DATA DIVISION describes data the program creates, receives as input,
manipulates, and produces as output.
Format -
[ DATA DIVISION.
[SUB-SCHEMA SECTION.
[subschema-entry [keeplist-entry] ... ] ]
[FILE SECTION.
[file-description-entry {record-description-entry} ... ] ...
[report-file-description-entry] ...
[sort-merge-file-description-entry {record-description-entry} ... ] ... ]
[WORKING-STORAGE SECTION.
[record-description-entry] ... ]
[LINKAGE SECTION.
[record-description-entry] ... ]
[REPORT SECTION.
[report-description-entry {report-group-description-entry} ... ] ... ] ]
Additional information available:
rf report-file-description-entryFD file-description-entrySD sort-merge-file-description-entry
DB subschema-entryRD report-description-entryLD keeplist-entry
dd record-description-entryclausesrg report-group-description-entrymiscellaneous topics
rf report-file-description-entry
The report file description entry is Format 4 of the file description entry. See FD_file-description-entry subtopic report_FD (Format 4) for details of the syntax.
FD file-description-entry
A file description entry describes the physical structure, identification, record names, and names for sequential, relative, indexed, and report files. It also specifies: (1) the internal or external attributes of a file connector, and (2) the local or global attributes of a file-name.
Additional information available:
sequential FDrelative FDindexed FDreport FD
sequential FD
A file description entry describes the physical structure,
identification, record names, and names for sequential, relative,
indexed, and report files. It also specifies: (1) the internal or
external attributes of a file connector, and (2) the local or global
attributes of a file-name.
Format 1 - Sequential File
FD file-name
[IS EXTERNAL]
[IS GLOBAL]
[BLOCK CONTAINS [smallest-block TO] blocksize { RECORDS }]
[ { CHARACTERS }]
[RECORD { CONTAINS [shortest-rec TO] longest-rec CHARACTERS }]
[ { IS VARYING IN SIZE [FROM shortest-rec]
[ TO longest-rec ] CHARACTERS
[ DEPENDING ON depending-item ] }]
[LABEL { RECORDS ARE } { STANDARD } ]
[ { RECORD IS } { OMITTED } ]
[VALUE OF ID IS file-spec]
[DATA { RECORDS ARE } {rec-name} ... ]
[ { RECORD IS } ]
[ LINAGE IS page-size LINES [ WITH FOOTING AT footing-line ]
[ LINES AT TOP top-lines ] [ LINES AT BOTTOM bottom-lines ] ]
[CODE-SET IS alphabet-name]
[ [ ACCESS MODE IS ] SEQUENTIAL ]
[FILE STATUS IS file-stat] .
relative FD
A file description entry describes the physical structure,
identification, record names, and names for sequential, relative,
indexed, and report files. It also specifies: (1) the internal or
external attributes of a file connector, and (2) the local or global
attributes of a file-name.
Format 2 - Relative File
FD file-name
[IS EXTERNAL]
[IS GLOBAL]
[BLOCK CONTAINS [smallest-block TO] blocksize { RECORDS }]
[ { CHARACTERS }]
[RECORD { CONTAINS [shortest-rec TO] longest-rec CHARACTERS }]
[ { IS VARYING IN SIZE [FROM shortest-rec]
[ TO longest-rec ] CHARACTERS
[ DEPENDING ON depending-item ] }]
[LABEL { RECORDS ARE } { STANDARD } ]
[ { RECORD IS } { OMITTED } ]
[VALUE OF ID IS file-spec]
[DATA { RECORDS ARE } {rec-name} ... ]
[ { RECORD IS } ]
[ { SEQUENTIAL [ RELATIVE KEY IS rel-key ] }]
[ACCESS MODE IS { { RANDOM } RELATIVE KEY IS rel-key }]
[ { { DYNAMIC } }]
[FILE STATUS IS file-stat] .
indexed FD
A file description entry describes the physical structure,
identification, record names, and names for sequential, relative,
indexed, and report files. It also specifies: (1) the internal or
external attributes of a file connector, and (2) the local or global
attributes of a file-name.
Format 3 - Indexed File
FD file-name
[IS EXTERNAL]
[IS GLOBAL]
[BLOCK CONTAINS [smallest-block TO] blocksize { RECORDS }]
[ { CHARACTERS }]
[RECORD { CONTAINS [shortest-rec TO] longest-rec CHARACTERS }]
[ { IS VARYING IN SIZE [FROM shortest-rec]
[ TO longest-rec ] CHARACTERS
[ DEPENDING ON depending-item ] }]
[LABEL { RECORDS ARE } { STANDARD } ]
[ { RECORD IS } { OMITTED } ]
[VALUE OF ID IS file-spec]
[DATA { RECORDS ARE } {rec-name} ... ]
[ { RECORD IS } ]
[ { SEQUENTIAL }]
[ACCESS MODE IS { RANDOM }]
[ { DYNAMIC }]
[RECORD KEY IS rec-key [ WITH DUPLICATES] [ ASCENDING ] ]
[ [ DESCENDING ] ]
[ALTERNATE RECORD KEY IS alt-key [ WITH DUPLICATES ]
[ ASCENDING ] ]
[ DESCENDING ] ]...
[FILE STATUS IS file-stat] .
report FD
A file description entry describes the physical structure,
identification, record names, and names for sequential, relative,
indexed, and report files. It also specifies: (1) the internal or
external attributes of a file connector, and (2) the local or global
attributes of a file-name.
Format 4 - Report File
FD file-name
[IS EXTERNAL]
[IS GLOBAL]
[BLOCK CONTAINS [smallest-block TO] blocksize { RECORDS }]
[ { CHARACTERS }]
[RECORD { CONTAINS [shortest-rec TO] longest-rec CHARACTERS }]
[ { IS VARYING IN SIZE [FROM shortest-rec]
[ TO longest-rec ] CHARACTERS
[ DEPENDING ON depending-item ] }]
[LABEL { RECORDS ARE } { STANDARD } ]
[ { RECORD IS } { OMITTED } ]
[VALUE OF ID IS file-spec]
[ [ACCESS MODE IS] SEQUENTIAL]
{ REPORT IS } {report-name} ...
{ REPORTS ARE }
[CODE-SET IS alphabet-name]
[FILE STATUS IS file-stat] .
SD sort-merge-file-description-entry
A sort-merge file description entry describes a sort or merge file's
physical structure, identification, and record names.
Format -
SD file-name
[RECORD { CONTAINS [shortest-rec TO] longest-rec CHARACTERS }]
[ { IS VARYING IN SIZE [FROM shortest-rec] [TO longest-rec]
CHARACTERS [DEPENDING ON depending-item] }]
[DATA { RECORDS ARE } {rec-name} ... ]
[ { RECORD IS } ] .
DB subschema-entry
The Subschema entry allows a program to access a subschema in the Common
Data Dictionary/Plus under the schema name.
Format -
DB subschema-name WITHIN schema-name
[ FOR database-name ] [ { THRU } stream-name ]
[ { THROUGH } ] .
Additional information available:
subschema-nameschema-namedatabase-namestream-name
subschema-name
references a subschema name in the Common Data Dictionary/Plus (CDD/Plus) under the schema name.
schema-name
references a schema name in the Common Data Dictionary/Plus.
database-name
represents a complete or partial file specification defining the database occurrence. A database occurrence is a root file. At run time, database-name points the Database Control System (DBCS) to the root file.
stream-name
represents the name of a stream. Signals the Data Base Control System (DBCS) that your run unit uses a stream, which allows access to multiple databases or subschemas.
RD report-description-entry
The Report Description names a report, specifies any identifying
characters to be prefixed to each print line in the report, and describes
the physical structure and organization of that report. It also
determines whether a report-name is a local name or global name.
Format -
RD report-name
[IS GLOBAL]
[CODE report-code]
[{ CONTROL IS } { {control-name} ... }]
[{ CONTROLS ARE } { FINAL [control-name] ... }]
[ PAGE [ LIMIT IS ] page-size [ LINE ]
[ LIMITS ARE ] [ LINES ]
[ HEADING heading-line ]
[ FIRST DETAIL first-detail-line ]
[ LAST DETAIL last-detail-line ]
[ FOOTING footing-line ] ] .
LD keeplist-entry
The Keeplist Description entry names a keeplist. Format - LD keeplist-name [LIMIT IS integer] .
Additional information available:
keeplist-name
is a user-defined name.
integer
is a positive integer.
dd record-description-entry
A data description entry specifies the characteristics of a data item.
Additional information available:
1format
A data description entry specifies the characteristics of a data item.
Format 1 -
level-number [ data-name ]
[ FILLER ]
[REDEFINES other-data-item]
[IS EXTERNAL]
[IS GLOBAL]
[ { PICTURE } IS character-string ]
[ { PIC } ]
[ { BINARY } ]
[ { COMPUTATIONAL } ]
[ { COMP } ]
[ { COMPUTATIONAL-1 } ]
[ { COMP-1 } ]
[ { COMPUTATIONAL-2 } ]
[ [USAGE IS ] { COMP-2 } ]
[ { COMPUTATIONAL-3 } ]
[ { COMP-3 } ]
[ { DISPLAY } ]
[ { INDEX } ]
[ { PACKED-DECIMAL } ]
[ { POINTER } ]
[ [SIGN IS ] { LEADING } [ SEPARATE CHARACTER ] ]
[ { TRAILING } ]
[ OCCURS table-size TIMES ]
[ [ { ASCENDING } KEY IS {key-name} ... ] ... ]
[ [ { DESCENDING } ] ]
[ ]
[ [INDEXED BY {ind-name} ... ] ]
[ ]
[ OCCURS min-times TO max-times TIMES DEPENDING ON depending-item ]
[ [ { ASCENDING } KEY IS {key-name} ... ] ... ]
[ [ { DESCENDING } ] ]
[ ]
[ [INDEXED BY {ind-name} ... ] ]
[ { SYNCHRONIZED } [ LEFT ] ]
[ { SYNC } [ RIGHT ] ]
[ { JUSTIFIED } RIGHT ]
[ { JUST } ]
[BLANK WHEN ZERO]
[ { lit }]
[VALUE IS { EXTERNAL external-name }] .
[ { REFERENCE data-name }]
2format 66
A data description entry specifies the characteristics of a data item.
Format 2 -
66 new-name RENAMES rename-start [ { THRU } rename-end ] .
[ { THROUGH } ]
3format 88
A data description entry specifies the characteristics of a data item.
Format 3 -
88 condition-name { VALUE IS } { { EXTERNAL external-name }
{ VALUES ARE } { { REFERENCE data-name }
{ { low-val }
[ { THRU } { EXTERNAL external-name } ] }
[ { THROUGH } { REFERENCE data-name } ] } ... .
[ { high-val } ] }
clauses
Additional information available:
ACCESS_MODEALTERNATE_RECORD_KEYBLANK_WHEN_ZERO
CODECOLUMN_NUMBERCONTROLDATA_RECORDSEXTERNAL
FILE_STATUSGLOBALGROUP_INDICATEJUSTIFIEDLABEL_RECORDS
LINAGELINE_NUMBERNEXT_GROUPOCCURSPAGE
PICTURERECORDRECORD_KEYREDEFINESRENAMESREPORT
SIGNSOURCESUMSYNCHRONIZEDTYPEUSAGE
VALUE_ISVALUE_OF_ID
ACCESS_MODE
The ACCESS MODE clause specifies the order of access for a file's records.
Additional information available:
1format sequential2format relative3format indexed
1format sequential
The ACCESS MODE clause specifies the order of access for a file's records. Format 1 - Sequential File [ ACCESS MODE IS ] SEQUENTIAL
2format relative
The ACCESS MODE clause specifies the order of access for a file's
records.
Format 2 - Relative File
{ SEQUENTIAL [ RELATIVE KEY IS rel-key ] }
[ ACCESS MODE IS ] { { RANDOM } RELATIVE KEY IS rel-key }
{ { DYNAMIC } }
Additional information available:
rel-key
is the file's RELATIVE KEY data item.
3format indexed
The ACCESS MODE clause specifies the order of access for a file's
records.
Format 3 - Indexed File
{ SEQUENTIAL }
[ ACCESS MODE IS ] { RANDOM }
{ DYNAMIC }
ALTERNATE_RECORD_KEY
THE ALTERNATE RECORD KEY clause specifies an alternate access path to
indexed file records.
Format -
ALTERNATE RECORD KEY IS alt-key [ WITH DUPLICATES ] [ ASCENDING ]
[ DESCENDING ]
Additional information available:
alt-key
is the Alternate Record Key for the file. It is the data-name of a data item in a Record Description entry for the file. The data item must be described as: (1) alphanumeric or alphabetic category, (2) a group item, (3) unsigned numeric display, (4) a COMP-3 integer, or (5) a COMP integer with no more than nine digits.
BLANK_WHEN_ZERO
THE BLANK WHEN ZERO clause replaces zeroes with spaces when a data item's value is zero. Format - BLANK WHEN ZERO
CODE
The CODE clause specifies a two-character literal that identifies each print line as belonging to a specific report. Format - CODE report-code
Additional information available:
report-code
must be a two-character nonnumeric literal.
COLUMN_NUMBER
The COLUMN NUMBER clause identifies a printable item and specifies the position of the item on a print line. Format - COLUMN NUMBER IS column-num
Additional information available:
column-num
is a positive integer greater than zero.
CONTROL
The CONTROL clause establishes the levels of the control hierarchy for
the report.
Format -
{ CONTROL IS } { {control-name} ... }
{ CONTROLS ARE } { FINAL [control-name] ... }
Additional information available:
control-name
is any data-name in the Subschema, File, Working-Storage, or Linkage Section.
Data-Name
Data-name specifies a data item that your program can explicitly reference. FILLER specifies an item that cannot be explicitly referenced. Format - [ data-name ] [ FILLER ]
DATA_RECORDS
The DATA RECORDS clause documents the names of a file's record
description entries.
Format -
DATA { RECORD IS } {rec-name} ...
{ RECORDS ARE }
Additional information available:
rec-name
is the name of a data record. It must be defined by a level 01 data description entry subordinate to the file description entry.
EXTERNAL
The EXTERNAL clause specifies that a data item or a file connector in a defining program is common to other programs in the run unit if the program defines it identically. The group and elementary data items of an external data record and files associated with an external file connector are available to very program in the image that describes them. Format - IS EXTERNAL
FILE_STATUS
The FILE STATUS clause names a data item that contains the status of an input/output operation. Format - FILE STATUS IS file-stat
Additional information available:
file-stat
is the data-name of a two-character alphanumeric Sub-Schema Section, Working-Storage Section, or Linkage Section data item. File-stat is the file's FILE STATUS data item.
GLOBAL
The GLOBAL clause specifies that data-name or file-name is available to every program contained within the program that declares it. Format - IS GLOBAL
GROUP_INDICATE
The GROUP INDICATE clause specifies that the associated printable item is presented only on the first occurrence of its DETAIL report group after a control break or page advance. Format - GROUP INDICATE
JUSTIFIED
The JUSTIFIED clause specifies nonstandard data positioning in an
alphanumeric receiving item.
Format -
{ JUSTIFIED } RIGHT
{ JUST }
LABEL_RECORDS
The LABEL RECORDS clause specifies the presence or absence of labels.
Format -
LABEL { RECORDS ARE } { STANDARD }
{ RECORD IS } { OMITTED }
Level-Number
The level-number shows the position of a data item within the hierarchial structure of a logical record or a report group. It also identifies entries for condition-names and the RENAMES clause. Format - level-number
LINAGE
The LINAGE clause specifies the number of lines on a logical page. It
can also specify the size of the logical page's top and bottom margins
and the line where the footing area begins in the page body.
Format -
LINAGE IS {page-lines} LINES [ WITH FOOTING AT footing-line ]
[ LINES AT TOP top-lines ] [ LINES AT BOTTOM bottom-lines ]
Additional information available:
page-linesfooting-linetop-linesbottom-lines
page-lines
is a positive integer or the data-name of an elementary unsigned integer numeric data item. Its value must be greater than zero. It specifies the number of lines that can be written or spaced on the logical page. If page-lines is a data-name, it can be qualified.
footing-line
is a positive integer or the data-name of an elementary unsigned integer numeric data item. Its value must be greater than zero, but cannot be greater than page-lines. Footing-lines specifies the line number where the footing area begins in the page body. If footing-line is a data-name, it can be qualified.
top-lines
is an integer or the data-name of an elementary unsigned integer numeric data item. Its value can be zero. Top-lines specifies the number of lines in the top margin of the logical page. If top-lines is a data-name, it can be qualified.
bottom-lines
is an integer or the data-name of an elementary unsigned integer numeric data item. Its value can be zero. Bottom-lines specifies the number of lines in the bottom margin of the logical page. If bottom-lines is a data-name, it can be qualified.
LINE_NUMBER
The LINE NUMBER clause specifies vertical positioning information for a
report group.
Format -
LINE NUMBER IS { line-num [ON NEXT PAGE] }
{ PLUS line-num-plus }
Additional information available:
line-num
is a nonnegative integer. Line-num represents an absolute line number on a logical page and establishes a print line for a Report Writer report group.
line-num-plus
is a positive integer. Line-num-plus represents a relative line number on a logical page and establishes a print line for a Report Writer report group.
NEXT_GROUP
The NEXT GROUP clause specifies information for the vertical
positioning of the next report group on a logical page following the
presentation of the last line of a report group.
Format -
{ next-group-line-num }
NEXT GROUP IS { PLUS next-group-line-num-plus }
{ NEXT PAGE }
Additional information available:
next-group-line-numnext-group-line-num-plus
next-group-line-num
is a positive, one- to three-digit integer value greater than zero. It represents an absolute line number on a logical page and establishes a print line for the next Report Writer report group.
next-group-line-num-plus
is a positive, one- to three-digit integer value. It represents a relative line number on a logical page and establishes a print line for the next Report Writer report group.
OCCURS
The OCCURS clause defines tables and provides the basis for subscripting and indexing. It eliminates the need for separate entries for repeated data items.
Additional information available:
1format table-size2format DEPENDING
1format table-size
The OCCURS clause defines tables and provides the basis for
subscripting and indexing. It eliminates the need for separate
entries for repeated data items.
Format 1 -
OCCURS table-size TIMES
[ { ASCENDING } KEY IS {key-name} ... ] ...
[ { DESCENDING } ]
[ INDEXED BY {ind-name} ... ]
Additional information available:
table-size
is an integer that specifies the exact number of occurrences of a table element.
key-name
is the data-name of an entry that contains the OCCURS clause or an entry subordinate to it. Key-name can be qualified. Each key-name after the first must name an entry subordinate to the entry that contains the OCCURS clause. The values in each key-name are the basis of the ascending or descending arrangement of the table's repeated data.
ind-name
is an index-name. It associates an index with the table and allows indexing in table element references.
2format DEPENDING
The OCCURS clause defines tables and provides the basis for
subscripting and indexing. It eliminates the need for separate
entries for repeated data items.
Format 2 -
OCCURS min-times TO max-times TIMES DEPENDING ON depending-item
[ { ASCENDING } KEY IS {key-name} ... ] ...
[ { DESCENDING } ]
[ INDEXED BY {ind-name} ... ]
Additional information available:
min-timesmax-timeskey-nameind-namedepending-item
min-times
is an integer that specifies the minimum number of occurrences of a table element. Its value must be greater than or equal to zero.
max-times
is an integer that specifies the maximum number of occurrences of a table element. Its value must be greater than min-times.
key-name
is the data-name of an entry that contains the OCCURS clause or an entry subordinate to it. Key-name can be qualified. Each key-name after the first must name an entry subordinate to the entry that contains the OCCURS clause. The values in each key-name are the basis of the ascending or descending arrangement of the table's repeated data.
ind-name
is an index-name. It associates an index with the table and allows indexing in table element references.
depending-item
is the data-name of an elementary unsigned integer data item. Its value specifies the current number of occurrences. Depending-item can be qualified.
PAGE
The PAGE clause defines the length of a logical page and the vertical
subdivisions within which report groups are presented.
Format -
PAGE [ LIMIT IS ] page-size [ LINE ]
[ LIMITS ARE ] [ LINES ]
[ HEADING heading-line ]
[ FIRST DETAIL first-detail-line ]
[ LAST DETAIL last-detail-line ]
[ FOOTING footing-line ]
Additional information available:
page-sizeheading-linefirst-detail-linelast-detail-linefooting-line
page-size
is a one- to three-digit integer. It defines the number of lines available on a logical page.
heading-line
is a one- to three-digit integer. It defines the first line number for a REPORT HEADING or PAGE HEADING report group on the logical page.
first-detail-line
is a one- to three-digit integer. It defines the first line number for a CONTROL HEADING, DETAIL, and CONTROL FOOTING report group on the logical page.
last-detail-line
is a one- to three-digit integer. It defines the last line number for a CONTROL HEADING or DETAIL report group on the logical page.
footing-line
is a one- to three-digit integer. It defines the last line number for a CONTROL FOOTING report group and the first line number for the PAGE FOOTING report group on the logical page.
PICTURE
The PICTURE clause specifies the general characteristics and editing
requirements of an elementary item.
Format -
{ PICTURE } IS character-string
{ PIC }
Additional information available:
PICTURE symbols
The following symbols may be used in a PICTURE clause: A B P S V X Z 9 0 / , . + - CR DB * cs
RECORD
The RECORD clause specifies: (1) the number of character positions in a fixed length record, (2) variable length record format, or (3) the minimum and maximum number of character positions in a variable length record.
Additional information available:
1format CONTAINS2format VARYING
1format CONTAINS
The RECORD clause specifies: (1) the number of character positions in a fixed length record, (2) variable length record format, or (3) the minimum and maximum number of character positions in a variable length record. Format 1 - RECORD CONTAINS [shortest-rec TO] longest-rec CHARACTERS
Additional information available:
shortest-rec
is an integer that specifies the minimum number of character positions in a variable-length record.
longest-rec
is an integer greater than shortest-rec. It specifies the maximum number of character positions in a variable-length record or the size of a fixed-length record.
2format VARYING
The RECORD clause specifies: (1) the number of character positions in
a fixed length record, (2) variable length record format, or (3) the
minimum and maximum number of character positions in a variable
length record.
Format 2 -
RECORD IS VARYING IN SIZE [FROM shortest-rec] [TO longest-rec]
CHARACTERS [DEPENDING ON depending-item]
Additional information available:
shortest-reclongest-recdepending-item
shortest-rec
is an integer that specifies the minimum number of character positions in a variable-length record.
longest-rec
is an integer greater than shortest-rec. It specifies the maximum number of character positions in a variable-length record or the size of a fixed-length record.
depending-item
is the identifier of an elementary unsigned integer data item in the Working-Storage or Linkage Section. It specifies the number of character positions for an output operation, and it contains the number of character positions after a successful input operation.
RECORD_KEY
The RECORD KEY clause specifies the Prime Record Key access path to
indexed file records.
Format -
RECORD KEY IS rec-key [ WITH DUPLICATES ] [ ASCENDING ]
[ DESCENDING ]
Additional information available:
rec-key
is the identifier of a data item in a Record Description entry for the file. It can be qualified, but it cannot be a group item that contains a variable-occurrence data item. The data item must be described as: (1) alphanumeric or alphabetic category, (2) a group item, (3) unsigned numeric display, (4) a COMP-3 integer, or (5) a COMP integer with no more than nine digits.
REDEFINES
The REDEFINES clause allows different data description entries to
describe the same storage area.
Format -
level-number [ identifier ] REDEFINES other-data-item
[ FILLER ]
Additional information available:
other-data-item
is an identifier. It identifies the data description entry that first defines the storage area.
RENAMES
The RENAMES clause groups elementary items in alternative or
overlapping ways.
Format -
66 new-name RENAMES rename-start [ { THRU } rename-end ]
[ { THROUGH } ]
Additional information available:
new-namerename-startrename-end
new-name
is the identifier of the item being described. It identifies an alternate grouping of one or more items in a record.
rename-start
is the identifier of the leftmost data item in the area. It can be qualified.
rename-end
is the identifier of the rightmost data item in the area. It can be qualified.
REPORT
The REPORT clause in a File Description entry (FD) specifies the Report
Description (RD) report names that comprise a report file.
Format -
{ REPORT IS } { report-name } ...
{ REPORTS ARE }
SIGN
The SIGN clause specifies the operational sign's position and type of representation.
Additional information available:
1format Data Description2format Report Group Description
1format Data Description
The SIGN clause specifies the operational sign's position and type of
representation.
Format 1 - Data Description Entries
[ SIGN IS ] { LEADING } [ SEPARATE CHARACTER ]
{ TRAILING }
2format Report Group Description
The SIGN clause specifies the operational sign's position and type of
representation.
Format 2 - Report Group Description Entries
[ SIGN IS ] { LEADING } SEPARATE CHARACTER
{ TRAILING }
SOURCE
The SOURCE clause identifies a data item to be sent to an associated printable item defined within a Report Group Description entry. Format - SOURCE IS source-id
Additional information available:
source-id
names an elementary item in the Data Division.
SUM
The SUM clause establishes a Report Writer sum counter and names the
data items to be summed.
Format -
{SUM {sum-name}...
[UPON {detail-report-group-name} ... ]} ...
[RESET ON { control-foot-name } ]
[ { FINAL } ]
Additional information available:
sum-namedetail-report-group-namecontrol-foot-name
sum-name
names a numeric data item with an optional sign in the Sub-Schema, File, Working-Storage, and Linkage Sections, or another sum counter in the Report Section.
detail-report-group-name
names a DETAIL report group.
control-foot-name
must reference a control-name in the report's CONTROL clause.
SYNCHRONIZED
The SYNCHRONIZED clause specifies elementary item alignment on word
boundary offsets relative to a record's beginning. These offsets are
related to the size and usage of the item being stored.
Format -
[ { SYNCHRONIZED } [ LEFT ] ]
[ { SYNC } [ RIGHT ] ]
TYPE
The TYPE clause identifies the report group type and indicates when the
Report Writer Control System (RWCS) is to process it.
Format -
{ REPORT HEADING } }
{ RH } }
{ PAGE HEADING } }
{ PH } }
{ CONTROL HEADING } { control-head-name } }
{ CH } { FINAL } }
TYPE IS { DETAIL } }
{ DE } }
{ CONTROL FOOTING } { control-foot-name } }
{ CF } { FINAL } }
{ PAGE FOOTING } }
{ PF } }
{ REPORT FOOTING } }
{ RF } }
Additional information available:
control-head-namecontrol-foot-name
control-head-name
names a control-name in the CONTROL clause.
control-foot-name
names a control-name in the CONTROL clause.
USAGE
The USAGE clause specifies the internal format of a data item or
represents the address of data in a COBOL program.
Format -
{ BINARY }
{ COMPUTATIONAL }
{ COMP }
{ COMPUTATIONAL-1 }
{ COMP-1 }
{ COMPUTATIONAL-2 }
[ USAGE IS ] { COMP-2 }
{ COMPUTATIONAL-3 }
{ COMP-3 }
{ DISPLAY }
{ INDEX }
{ PACKED-DECIMAL }
{ POINTER }
VALUE_IS
The VALUE IS clause defines the values associated with condition-names, the initial value of Working-Storage Section data items, the value of Report Section printable items, the compile-time initialization of variables to the address of data, and to external constants.
Additional information available:
1format lit2format THROUGH3format REFERENCE4format EXTERNAL
1format lit
The VALUE IS clause defines the values associated with condition-names, the initial value of Working-Storage Section data items, the value of Report Section printable items, the compile-time initialization of variables to the address of data, and to external constants. Format 1 - VALUE IS lit
Additional information available:
lit
is a numeric or nonumeric literal.
2format THROUGH
The VALUE IS clause defines the values associated with
condition-names, the initial value of Working-Storage Section data
items, the value of Report Section printable items, the compile-time
initialization of variables to the address of data, and to external
constants.
Format 2 -
{ VALUE IS } { { EXTERNAL external-name }
{ VALUES ARE } { { REFERENCE data-name }
{ { low-val }
[ { THRU } { EXTERNAL external-name } ] }
[ { THROUGH } { REFERENCE data-name } ] } ...
{ high-val } ] }
Additional information available:
low-valhigh-valdata-nameexternal-name
low-val
is a numeric or nonnumeric literal. It is the lowest value in a range of values associated with a condition-name in a level 88 data description entry.
high-val
is a numeric or nonnumeric literal. It is the highest value in a range of values associated with a condition-name in a level 88 data description entry.
data-name
names a data item in the File, Working-Storage, or Subschema Section. Data-name may be qualified.
external-name
names a COBOL link-time bound constant. It must define a word or longword integer value.
3format REFERENCE
The VALUE IS clause defines the values associated with
condition-names, the initial value of Working-Storage Section data
items, the value of Report Section printable items, the compile-time
initialization of variables to the address of data, and to external
constants.
Format 3 -
VALUE IS { REFERENCE data-name }
{ numeric-integer-lit }
Additional information available:
data-name
names a data item in the File, Working-Storage, or Subschema Section. Data-name may be qualified.
numeric-integer-lit
is a positive numeric integer literal.
4format EXTERNAL
The VALUE IS clause defines the values associated with condition-names, the initial value of Working-Storage Section data items, the value of Report Section printable items, the compile-time initialization of variables to the address of data, and to external constants. Format 4 - VALUE IS EXTERNAL external-name
Additional information available:
external-name
names a COBOL link-time bound constant. It must define a word or longword integer value.
VALUE_OF_ID
The VALUE OF ID clause specifies, replaces, or completes a file specification. Format - VALUE OF ID IS file-spec
Additional information available:
file-spec
is a nonnumeric literal or the data-name of an alphanumeric Working-Storage Section data item. It contains the full or partial file specification. File-spec can be qualified.
rg report-group-description-entry
The Report Group Description entry specifies the characteristics of a report group and of the individual items within a report group.
Additional information available:
1format 01
The Report Group Description entry specifies the characteristics of a
report group and of the individual items within a report group.
Format 1 -
01 [group-data-name]
[LINE NUMBER IS { line-num [ON NEXT PAGE] } ]
[ { PLUS line-num-plus } ]
[ { next-group-line-num } ]
[NEXT GROUP IS { PLUS next-group-line-num-plus } ]
[ { NEXT PAGE } ]
[ { REPORT HEADING } } ]
[ { RH } } ]
[ { PAGE HEADING } } ]
[ { PH } } ]
[ { CONTROL HEADING } { control-head-name } } ]
[ { CH } { FINAL } } ]
[TYPE IS { DETAIL } } ]
[ { DE } } ]
[ { CONTROL FOOTING } { control-foot-name } } ]
[ { CF } { FINAL } } ]
[ { PAGE FOOTING } } ]
[ { PF } } ]
[ { REPORT FOOTING } } ]
[ { RF } } ]
[ [ USAGE IS ] DISPLAY ] .
2format
The Report Group Description entry specifies the characteristics of a
report group and of the individual items within a report group.
Format 2 -
level-number [ group-data-name ]
[LINE NUMBER IS { line-num [ON NEXT PAGE] } ]
[ { PLUS line-num-plus } ]
[ [ USAGE IS ] DISPLAY ] .
3format PIC
The Report Group Description entry specifies the characteristics of a
report group and of the individual items within a report group.
Format 3 -
level-number [ group-data-name ]
[BLANK WHEN ZERO]
[COLUMN NUMBER IS column-num]
[GROUP INDICATE]
[ { JUSTIFIED } RIGHT ]
[ { JUST } ]
[LINE NUMBER IS { line-num [ON NEXT PAGE] } ]
[ { PLUS line-num-plus } ]
{ PICTURE } IS character-string
{ PIC }
[ [ SIGN IS ] { LEADING } SEPARATE CHARACTER ]
[ { TRAILING } ]
{ SOURCE IS source-name }
{ VALUE IS lit }
{ {SUM {sum-name} ... [UPON {detail-report-group-name} ... ]} ... }
{ [RESET ON { control-foot-name } ] }
{ [ { FINAL } ] }
[ [ USAGE IS ] DISPLAY ] .
miscellaneous topics
Additional information available:
data division entriesrecord alignment boundaries
data division entries
A Data Division entry begins with a level indicator or level-number and is followed, in order, by: 1) A space 2) The name of a data item or file connector 3) A sequence of independent descriptive clauses 4) A separator period The level indicators are: FD (for file description entries) SD (for sort-merge file description entries) RD (for report file description entries) DB (for sub-schema entries) LD (for keeplist entries) Level indicators start in Area A. Entries that begin with level-numbers are called data description entries. The level-number values are 01 through 49, 66, 77, and 88.
record alignment boundaries
The alignment boundaries for a record are shown in the following table.
The boundary is the leftmost location of the one-, two-, four-, or
eight-byte area. All boundaries are relative to the beginning of the
record.
+-----------------------------------------------+
|0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2| SYNCHRONIZED clause
|0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3| affects these
|-----------------------------------------------| Data Types
|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B| v--------v--------v
|---+---+---+---+---+---+---+---+---+---+---+---|
|2by|2by|2by|2by|2by|2by|2by|2by|2by|2by|2by|2by|COMP PIC 9 to 9(4)
|-------+-------+-------+-------+-------+-------|
|4-byte |4-byte |4-byte |4-byte |4-byte |4-byte |COMP PIC 9(5) to 9(9)
| | | |COMP-1 POINTER INDEX
|---------------+---------------+---------------|
|8-byte |8-byte |8-byte |<-----+
+-----------------------------------------------+ |
COMP-2
COMP PIC 9(10) to 9(18)
PROCEDURE_DIVISION
The Procedure Division contains the routines that process the files and data described in the Environment and Data Divisions.
Additional information available:
ACCEPTADDALTERCALLCANCELCLOSECOMMIT
COMPUTECONNECTCONTINUEDELETEDISCONNECTDISPLAY
DIVIDEERASEEVALUATEEXITFETCHFINDFREE
GENERATEGETGO_TOIFINITIALIZEINITIATEINSPECT
KEEPMERGEMODIFYMOVEMULTIPLYOPENPERFORM
READREADYRECONNECTRECORDRELEASERETURN
REWRITEROLLBACKSEARCHSETSORTSTARTSTOP
STORESTRINGSUBTRACTSUPPRESSTERMINATEUNLOCK
UNSTRINGUSEWRITE
1format declaratives2formatmiscellaneous topics
1format declaratives
The Procedure Division contains the routines that process the files and
data described in the Environment and Data Divisions.
Format 1 -
[ PROCEDURE DIVISION [ USING {data-name} ... ] [ GIVING identifier ] .
[ DECLARATIVES.
{ section-name SECTION [ segment-number ] . declarative-sentence
[ paragraph-name. [sentence] ... ] ... } ...
END DECLARATIVES. ]
{ section-name SECTION [ segment-number ] .
[ paragraph-name. [sentence] ... ] ... } ... ]
2format
The Procedure Division contains the routines that process the files and
data described in the Environment and Data Divisions.
Format 2 -
[ PROCEDURE DIVISION [ USING {data-name} ... ] [ GIVING identifier ] .
[ paragraph-name. [sentence] ... ] ... ]
miscellaneous topics
Additional information available:
arithmetic-expressionsconditional expressionsdatabase key identifiersdeclaratives
I-O statusidentifiersfunctionsindexingphrasesqualificationrecord selection expressions
reference modificationsegmentationsubscripting
arithmetic-expressions
An arithmetic expression can be one of the following:
1) An identifier (including function-identifier)
of a numeric elementary item
2) A numeric literal
3) Two or more of the above choices separated by arithmetic
operators (+, -, *, /, **)
4) Two or more arithmetic expressions separated by an arithmetic
operator (+, -, *, /, **)
5) An arithmetic expression enclosed in parentheses
A unary operator (a sign) can precede any arithmetic expression.
The identifiers and literals in an arithmetic expression must represent
either: (1) numeric elementary items (including functions),
or (2) numeric literals on which arithmetic can be performed.
conditional expressions
A conditional expression specifies a condition the program must evaluate to determine the path of program flow.
Additional information available:
abbreviatedclasscombined and negated combinedcondition-name
database key conditionmember database conditionnegated simple
relationsignsuccess-failureswitch-statustenancy database condition
abbreviated
When you combine simple or negated simple conditions in a consecutive
sequence, you can abbreviate any of the relation conditions except
the first. You can do this by either:
1) Omitting the subject of the relation condition
2) Omitting both the subject and the relational operator of the
condition
A relation condition in the consecutive sequence must contain a
subject (or subject and relational operator) that is common with the
preceding relation condition. There must be no parentheses in the
consecutive sequence.
Format -
relation-condition { { AND } [NOT] [relational-operator] object } ...
{ { OR } }
class
The class condition tests whether the contents of an operand are
numeric or alphabetic. It also determines if an alphabetic operand
contains only uppercase or only lowercase characters or if the
operand is a class-name.
Format -
{ NUMERIC }
identifier IS [ NOT ] { ALPHABETIC }
{ ALPHABETIC-LOWER }
{ ALPHABETIC-UPPER }
{ class-name }
Additional information available:
class-name
is the user-defined word for a class. It always possesses the global attribute
combined and negated combined
A combined condition results from connecting conditions with one of
the logical operators AND or OR.
Format -
condition { { AND } condition } ...
{ { OR } }
condition
can be
1) A simple condition
2) A negated simple condition
3) A combined condition
4) A negated combined condition
5) Valid combinations of the preceding conditions
condition-name
The condition-name condition determines if a data item contains a value assigned to one of that item's condition-names. The term conditional variable refers to the data item. Condition-name refers to a level 88 entry associated with that item. Format - condition-name
database key condition
Database conditions allow alternate paths of control depending on the
truth value of a test involving conditions peculiar to the database
environment. The database conditions are the tenancy, member, and
database key conditions.
The database key condition determines whether: (1) two database key
values identify the same database record, (2) a database key value
is null, or (3) a database key value is identical to any database
key value in a keeplist.
Format -
{ ALSO database-key }
database-key IS [ NOT ] { NULL }
{ WITHIN keeplist-name }
database-key
references a currency indicator or a keeplist entry in the
Sub-Schema Section.
member database condition
Database conditions allow alternate paths of control depending on the truth value of a test involving conditions peculiar to the database environment. The database conditions are the tenancy, member, and database key conditions. The member condition determines whether member records are present in one or more sets. Only member record types defined in the Sub-Schema Section are considered in determining the truth value of the condition. Format - [ set-name IS ] [ NOT ] EMPTY set-name is a subschema set name.
negated simple
The logical operator NOT negates a simple condition. The truth value of a negated simple condition is the opposite of the simple condition's truth value. Thus, the truth value of a negated simple condition is true only if the simple condition's truth value is false. It is false only if the simple condition's truth value is true. Format - NOT simple-condition
relation
A relation condition states a relation between two operands. The
program compares the operands to determine whether the stated
relation is true or false. The first operand is called the
condition's subject. The second operand is called its object.
Either operand can be: (1) an identifier, (2) a literal, or (3) the
value of an arithmetic expression. The set of words that specifies
the type of comparison is called the relational operator.
Format -
{IS [NOT] GREATER THAN }
{IS [NOT] > }
{IS [NOT] LESS THAN }
{identifier-1 } {IS [NOT] < } {identifier-2 }
{literal-1 } {IS [NOT] EQUAL TO } {literal-2 }
{arith-express-1} {IS [NOT] = } {arith-express-2}
{IS GREATER THAN OR EQUAL TO}
{IS >= }
{IS LESS THAN OR EQUAL TO }
{IS <= }
sign
The sign condition determines if the algebraic value of an arithmetic
expression is less than, greater than, or equal to zero.
Format -
{ POSITIVE }
arithmetic-expression IS [ NOT ] { NEGATIVE }
{ ZERO }
success-failure
This condition tests the return status codes of COBOL and non-COBOL
procedures for success or failure conditions.
Format -
status-code-id IS { SUCCESS }
{ FAILURE }
status-code-id
must be a word or longword COMP integer as represented by
PIC S9(1 to 9) COMP.
switch-status
The switch-status condition tests the "on" or "off" setting of an external logical program switch. Format - condition-name
tenancy database condition
Database conditions allow alternate paths of control depending on the
truth value of a test involving conditions peculiar to the database
environment. The database conditions are the tenancy, member, and
database key conditions.
The tenancy conditions determine whether a record in the database is
an owner, or member, or a tenant in one or more sets.
Format -
{ OWNER }
[ NOT ] [ set-name ] { MEMBER }
{ TENANT }
set-name
is a subschema set name.
database key identifiers
Database key identifiers are in Record Selection Expressions.
If a database exception condition occurs during the execution of a
FETCH or FIND statement, the Database Control System (DBCS) places a
database exception condition code in the special register
DB-CONDITION. This code identifies the condition. The DBCS also
places the record name of database-record in the special register
DB-CURRENT-RECORD-NAME and its UID in DB-CURRENT-RECORD-ID.
Format 1 - Currency Indicator Access
[ { record-name } ]
CURRENT [ WITHIN { set-name } ]
[ { realm-name } ]
Format 2 - Keeplist Access
{ OFFSET integer-exp }
{ FIRST } WITHIN keeplist-name
{ LAST }
declaratives
Declaratives specify procedures to be executed only when certain
conditions occur. You must write declarative procedures at the
beginning of the Procedure Division in consecutive sections. The key
word DECLARATIVES begins the declaratives part of the Procedure
Division; the pair of key words END DECLARATIVES ends it. Each of
these reserved word phrases must: (1) be on a line by itself, starting
in Area A; and (2) be followed by a separator period.
When you use declarative procedures, you must divide the remainder of
the Procedure Division into sections.
Format -
[ DECLARATIVES.
{ section-name SECTION [ segment-number ] . declarative-sentence
[ paragraph-name. [sentence] ... ] ... } ...
END DECLARATIVES. ]
I-O status
If a file description entry has a FILE STATUS clause, a value is placed in the two-character FILE STATUS data item during execution of a CLOSE, DELETE, OPEN, READ, REWRITE, START, UNLOCK, or WRITE statement. Two "keys" combine to form this value. Status Key 1 occupies the leftmost character position in the item and Status Key 2 occupies the rightmost position. In combination, the keys indicate the status of the input-output operation.
identifiers
In Procedure Division rules, the term identifier means the
complete specification of a data item. The term refers to
all words required to make your reference to the item
unique. To reference a data item that is a function, a
function-identifier is used.
Format 1 -
data-name [ qualification ] [ subscripting ] [ reference modification ]
Format 2 -
data-name [ qualification ] [ indexing ] [ reference modification ]
Format 3 -
FUNCTION function-name [ ({argument}...) ] [ reference modification ]
functions
A function (synonymous with intrinsic function) is a temporary data
item that represents a value to be determined at the time the
function is referenced during the execution of a statement. The
value can be alphanumeric, numeric, or integer.
A function-identifier is a syntactically correct combination of
character strings and separators that uniquely references the data
item resulting from the evaluation of a function. Functions are
treated as elementary data items, but cannot be receiving operands. A
function-identifier that references an alphanumeric function can be
specified wherever an identifier is permitted and where a reference to
a function is not specifically prohibited by general-format rules. An
integer or numeric function can be used anywhere an arithmetic
expression can be used, subject to certain restrictions.
The general format of a function-identifier is as follows:
FUNCTION function-name [({argument}... )] [reference-modifier]
A function-name is one of the names listed below. Most function-names
are key words but not reserved words (the exceptions are LENGTH,
RANDOM, and SUM, which are reserved words, as is FUNCTION), and can
be used in a program outside the context of a function.
An argument is an identifier (including a function-identifier), a
literal, or an arithmetic expression that complies with the specific
rules governing the number, class, and category of arguments for the
function. The arguments in an argument list may be separated by a
comma; they are evaluated individually, from left to right.
A reference-modifier can be specified only for alphanumeric functions.
It specifies the beginning character position and optionally the
length of the resulting data item.
The functions are listed below. For a complete description of the
functions, including their formats, see the chapter on Intrinsic
Functions in the VAX COBOL Reference Manual.
ACOS LENGTH ORD-MIN
ANNUITY LOG PRESENT-VALUE
ASIN LOG10 RANDOM
ATAN LOWER-CASE RANGE
CHAR MAX REM
COS MEAN REVERSE
CURRENT-DATE MEDIAN SIN
DATE-OF-INTEGER MIDRANGE SQRT
DAY-OF-INTEGER MIN STANDARD-DEVIATION
FACTORIAL MOD SUM
INTEGER NUMVAL TAN
INTEGER-OF-DATE NUMVAL-C UPPER-CASE
INTEGER-OF-DAY ORD VARIANCE
INTEGER-PART ORD-MAX WHEN-COMPILED
indexing
Indexing is a special subscripting procedure. In indexing, you use the
INDEXED BY phrase of the OCCURS clause to assign an index-name to each
table level. You then refer to a table element using the index-name as
a subscript.
Format -
{ data-name } ( { , index-name [ { + } literal-2 ] } )
{ condition-name } ( { [ { - } ] } ... )
( { , literal-1 } )
phrases
Additional information available:
AT_ENDAT_END-OF-PAGECORRESPONDINGFROMINTO
INVALID_KEYNOT_AT_ENDNOT_AT_END-OF-PAGE
NOT_INVALID_KEYNOT_ON_EXCEPTIONNOT_ON_OVERFLOWNOT_ON_SIZE_ERROR
ON_EXCEPTIONON_OVERFLOWON_SIZE_ERRORRETAINING
ROUNDED
NOT ON ERROR databaseON ERROR database
AT_END
The AT END phrase specifies the action your program takes when the AT END condition occurs. Format - AT END stment
AT_END-OF-PAGE
The AT END-OF-PAGE phrase specifies the action your program takes when the AT END-OF-PAGE condition occurs. Format - AT END-OF-PAGE stment
CORRESPONDING
The CORRESPONDING option allows you to specify group items as operands in order to use their corresponding subordinate items in an operation.
FROM
Format 1 -
record-name FROM identifier
Format 2 -
FROM { keeplist-name } ...
Keeplist-name refers to a user-defined keeplist in the Sub-Schema
Section.
Record-name and identifier must not refer to the same storage area.
After statement execution ends, the data in the area referenced by
identifier is available to the program. The data is not available in
the area referenced by record-name, unless there is an applicable
SAME clause.
INTO
The INTO phrase implicitly moves a current record from the record storage area into an identifier. Format - file-name INTO identifier
INVALID_KEY
The INVALID KEY phrase specifies the action your program takes when an invalid key condition is detected for the file being processed. Format - INVALID KEY stment
NOT_AT_END
The NOT AT END phrase specifies the action your program takes when the AT END condition does not occur. Format - NOT AT END stment
NOT_AT_END-OF-PAGE
The NOT AT END-OF-PAGE phrase specifies the action your program takes when the AT END-OF-PAGE condition does not occur. Format - NOT AT END-OF-PAGE stment
NOT_INVALID_KEY
The NOT INVALID KEY phrase specifies the action your program takes when an invalid key condition is not detected for the file being processed. Format - NOT INVALID KEY stment
NOT ON ERROR database
The database on error exception condition occurs when the Database Control System (DBCS) encounters any database exception condition for any Data Manipulation Language (DML) statement. The NOT ON ERROR phrase in a DML statement allows the selection of an imperative statement sequence when any database exception condition does not occur. Format - NOT ON ERROR stment
NOT_ON_EXCEPTION
The NOT ON EXCEPTION phrase allows execution of an imperative statement when an exception (or error) condition does not occur. Format - NOT ON EXCEPTION stment
NOT_ON_OVERFLOW
The NOT ON OVERFLOW phrase allows you to specify an action for your program to take when an overflow condition does not exist. Format - NOT ON OVERFLOW stment
NOT_ON_SIZE_ERROR
The NOT ON SIZE ERROR phrase allows you to specify an action for your program to take when a size error condition does not exist. Format - NOT ON SIZE ERROR stment
ON ERROR database
The database on error exception condition occurs when the Database Control System (DBCS) encounters any database exception condition for any Data Manipulation Language (DML) statement. The ON ERROR phrase in a DML statement allows the selection of an imperative statement sequence when any database exception condition occurs. Format - ON ERROR stment
ON_EXCEPTION
The ON EXCEPTION phrase allows execution of an imperative statement when an exception (or error) condition occurs. The ON EXCEPTION option of the CALL statement prevents control transfer of the CALL and triggers the execution of the imperative statement related to the CALL. The ON EXCEPTION option of the ACCEPT statement allows you to handle data entry errors when ACCEPTing into a numeric data field WITH CONVERSION. Format - ON EXCEPTION stment
ON_OVERFLOW
The ON OVERFLOW phrase allows you to specify an action for your program to take when an overflow condition exists. Format - ON OVERFLOW stment
ON_SIZE_ERROR
The ON SIZE ERROR phrase allows you to specify an action for your program to take when a size error condition exists. Format - ON SIZE ERROR stment
RETAINING
The RETAINING clause specifies which currency indicators are not
updated during the execution of the CONNECT, FETCH, FIND, MODIFY,
RECONNECT, and STORE statements.
Format -
[ [ {| REALM |} ] ]
[ RETAINING [ {| RECORD |} ] CURRENCY ]
[ [ {| { SET [ set-name ] ... } |} ] ]
[ [ {| { { set-name } ... } |} ] ]
set-name
is a subschema set name.
ROUNDED
The rounding operation adds 1 to the absolute value of the low-order digit of the resultant identifier if the absolute value of the next least significant (lower-valued) digit of the intermediate data item is greater than or equal to 5. If you do not use the ROUNDED phrase, any excess digits in the arithmetic result are truncated when the result is moved to the resultant identifier(s).
qualification
A reference to a user-defined word is unique if:
1) no other name has the same spelling, including hyphenation,
2) it is a part of a REDEFINES clause (the reference following the
word REDEFINES is unique because of clause placement), or
3) scoping rules make it unique.
A name in a hierarchy of names can occur in more than one place in your
program. Unless you are redefining it, you must refer to this
nonunique name using one or more higher-level names in the hierarchy.
These higher-level names are called qualifiers. Using them to achieve
uniqueness of reference is called qualification.
To make your reference unique, you need not specify all available
qualifiers for a name, only the one(s) necessary to avoid ambiguity.
You cannot use the same data-name as:
1) The name of an external record and as the name of any other
external data item in any program contained within or containing
the program describing the external data record.
2) The name of an item possessing the global attribute and as the
name of any other data item in the program describing the global
data item.
Additional information available:
1format file2format paragraph3format text4format LINAGE5format PAGE LINE
6format report7format RMS
1format file
Format 1 -
{ { { IN } data-name-2 } ... [ { IN } file-name ] }
{ data-name-1 }{ { { OF } } [ { OF } ] }
{ condition-name }{ { IN } file-name }
{ { OF } }
2format paragraph
Format 2 -
paragraph-name { IN } section-name
{ OF }
3format text
Format 3 -
text-name { IN } library-name
{ OF }
4format LINAGE
Format 4 -
LINAGE-COUNTER { IN } file-name
{ OF }
5format PAGE LINE
Format 5 -
{ PAGE-COUNTER } { IN } report-name
{ LINE-COUNTER } { OF }
6format report
Format 6 -
{ { IN } data-name-4 [ { IN } report-name ] }
data-name-3 { { OF } [ { OF } ] }
{ { IN } report-name }
{ { OF } }
7format RMS
Format 7 -
{ RMS-STS } { IN } file-name
{ RMS-STV } { OF }
{ RMS-FILENAME }
record selection expressions
A record selection expression is used to select a record in the database. It can be used in a FETCH or FIND statement. The record thus selected becomes the current record of the run unit upon which subsequent statements may operate when accessing the database.
Additional information available:
1format database key identifier access2format set owner access3format record search access
4format database key access
1format database key identifier access
This format selects a record by a database key value held by the Database Control System (DBCS) in a currency indicator or a keeplist entry. Format 1 - Database Key Identifier Access database-key-identifier
Additional information available:
database-key-identifier
identifies a record according to the rules of Database Key Identifiers.
2format set owner access
This format selects the record that owns a set. Format 2 - Set Owner Access OWNER WITHIN set-name
Additional information available:
set-name
is a subschema set name. The Database Control System (DBCS) uses the currency indicator for set-name to choose the owner record of that set occurrence. A database exception condition occurs if set-name is a singular set (DB-CONDITION is set to DBM$_SINGTYP) or if the currency indicator for the set type is null (DB-CONDITION is set to DBM$_CSTYP_NULL).
3format record search access
This format selects a record by its position within a collection of
records and optionally by its record type and contents.
Format 3 - Record Search Access
{ FIRST }
{ LAST }
{ NEXT }
{ PRIOR }
{ ANY }
{ DUPLICATE }
{ [ RELATIVE ] int-exp }
[record-name] [ WITHIN { realm-name } ] [ USING { rec-key } ... ]
[ { set-name } ] [ WHERE { bool-expres } ]
Additional information available:
int-exprealm-namerecord-nameset-namerec-keybool-expres
int-exp
is an integer or arithmetic expression resulting in a longword integer value. It cannot be zero.
realm-name
is a subschema realm name.
record-name
is a subschema record name.
set-name
is a subschema set name.
rec-key
is a key data item within the subschema record occurrence. The same rec-key can appear only once in a given USING phrase.
bool-expres
is a conditional expression that involves data items of the object
record. It is used to specify additional requirements of a
qualifying record.
bool-expres:
{ bool-alt [ OR bool-alt ] ... }
bool-alt:
{ simp-bool-rel [ AND simp-bool-rel ] ... }
simp-bool-rel:
{ bool-condit }
{ NOT bool-expres }
bool-condit:
{ { {[ NOT ] EQUAL TO } } }
{ { {[ NOT ] = } } }
{ { {[ NOT ] LESS THAN } } }
{ { IS {[ NOT ] < } } }
{ { {[ NOT ] GREATER THAN } } }
{ { {[ NOT ] > } } }
{ { id } { { GREATER THAN OR EQUAL TO } } { id } }
{ { lit } { { >= } } { lit } }
{ { { LESS THAN OR EQUAL TO } } }
{ { { <= } } }
{ { DOES {[ NOT ] CONTAIN } } }
{ { {[ NOT ] CONTAINS } } }
{ { {[ NOT ] MATCH } } }
{ { {[ NOT ] MATCHES } } }
Additional information available:
bool-altsimp-bool-relbool-condit
is one or more sub-expressions (simp-bool-rel). Pairs of sub-expressions are joined by the logical operator AND.
is a simple-condition (bool-condit), an expression, or the negation of either.
a simple-condition is a relation involving two operands joined by a relational operator. At least one operand in each relation must be an item in the record being found or fetched.
4format database key access
This format selects the record that is referred to by the database key value contained in the special register DB-KEY. Format 4 - Database Key Access DBKEY
reference modification
Reference modification defines a subset of a data item by specifying
its leftmost character and length.
Format 1 -
data-name ( leftmost-character-position : [ length ] )
Format 2 -
FUNCTION function-name [ ({argument}...) ]
( leftmost-character-position : [ length ] )
segmentation
VAX COBOL programs execute in a virtual memory environment. Therefore, programs need not manage physical memory by overlaying Procedure Division code. In VAX COBOL, segmentation controls the assignment of Procedure Division sections to fixed or independent segments. The optional segment-number in the section header specifies the type of segment. Format - section-name SECTION [ segment-number ] .
Additional information available:
section-namesegment-numberfixed segmentsindependent segments
section-name
names a Procedure Division section.
segment-number
must be an integer in the range 0 through 99. If there is no segment-number in a section header, the implied segment-number is 0.
fixed segments
Fixed segments appear to reside in memory at all times. A fixed segment is in its initial state the first time the program calls it. On later calls, the fixed segment is in its last-used state.
independent segments
The state of an independent segment depends on how and when it receives control.
subscripting
Subscripts can appear only in references to individual elements in a
list, or table, of like elements that do not have individual
data-names.
Format -
{ data-name } ( { arithmetic-expression } ... )
{ condition-name }
ACCEPT
The ACCEPT statement makes low-volume data available to the program. The DIGITAL extensions to the ACCEPT statement (formats 3 and 4) are COBOL language additions that facilitate video forms design and data handling.
Additional information available:
1format FROM input2format FROM3format screen extensions4format screen extensions CONTROL KEY
1format FROM input
The ACCEPT statement makes low-volume data available to the program.
The DIGITAL extensions to the ACCEPT statement (formats 3 and 4) are
COBOL language additions that facilitate video forms design and data
handling.
Format 1 -
ACCEPT dest-item [FROM input-source]
[ AT END stment ] [ NOT AT END stment ]
[ END-ACCEPT ]
Additional information available:
dest-item
is the identifier of a data item into which data is accepted.
input-source
is a mnemonic-name defined in the SPECIAL-NAMES paragraph of the Environment Division.
stment
is an imperative statement executed for an AT END or NOT AT END condition.
2format FROM
The ACCEPT statement makes low-volume data available to the program.
The DIGITAL extensions to the ACCEPT statement (formats 3 and 4) are
COBOL language additions that facilitate video forms design and data
handling.
Format 2 -
{ DATE }
ACCEPT dest-item FROM { DAY }
{ DAY-OF-WEEK }
{ TIME }
Additional information available:
dest-item
is the identifier of a data item into which data is accepted.
3format screen extensions
The ACCEPT statement makes low-volume data available to the program.
The DIGITAL extensions to the ACCEPT statement (formats 3 and 4) are
COBOL language additions that facilitate video forms design and data
handling.
Format 3 -
ACCEPT dest-item
{| { line-num } |}
{| FROM LINE NUMBER { line-id [ PLUS [ plus-num ] ] } |}
{| { PLUS [ plus-num ] } |}
{| { column-num } |}
{| FROM COLUMN NUMBER { column-id [ PLUS [ plus-num ] ] } |}
{| { PLUS [ plus-num ] } |}
{| ERASE [TO END OF] { SCREEN } |}
{| { LINE } |}
{| WITH BELL |}
{| UNDERLINED |}
{| BOLD |}
{| WITH BLINKING |}
{| PROTECTED [| SIZE { prot-size-lit } |] |}
{| [| { prot-size-item } |] |}
{| [| WITH AUTOTERMINATE |] |}
{| [| WITH EDITING |] |}
{| [| WITH NO BLANK |] |}
{| [| WITH FILLER prot-fill-lit |] |}
{| WITH CONVERSION |}
{| REVERSED |}
{| WITH NO ECHO |}
{| DEFAULT IS { def-src-lit } |}
{| { def-src-item } |}
{| { CURRENT VALUE } |}
{| CONTROL KEY IN key-dest-item |}
{ [ ON EXCEPTION stment ] [ NOT ON EXCEPTION stment ] }
{ [ AT END stment ] [ NOT AT END stment ] }
[ END-ACCEPT ]
Additional information available:
dest-itemline-numline-idcolumn-numcolumn-idplus-numprot-size-lit
prot-size-itemprot-fill-litdef-src-litdef-src-itemkey-dest-itemstment
dest-item
is the identifier of a data item into which data is accepted.
line-num
is a numeric literal that specifies a line position on the terminal screen. Line-num must be a positive integer. It cannot be zero.
line-id
is the identifier of a data item that provides a line position on the terminal screen.
column-num
is a numeric literal that specifies a column position on the terminal screen. Column-num must be a positive integer. It cannot be zero.
column-id
is the identifier of a data item that provides a column position on the terminal screen.
plus-num
is a numeric literal that increments the current value for line or column position, or that increments the value of line-id or column-id. Plus-num can be zero or a positive integer.
prot-size-lit
is a numeric literal that specifies the maximum length of the video screen field into which data can be typed. Prot-size-lit must be a positive integer. It cannot be zero.
prot-size-item
is the identifier of a numeric integer data item that specifies the maximum length of the video screen field into which data can be typed. It must be a positive integer; it cannot be zero.
prot-fill-lit
is a single character alphanumeric literal that is used to initialize each character position of a protected video screen field into which data can be typed.
def-src-lit
is a nonnumeric literal or a figurative constant. However, it cannot be the figurative constant ALL literal.
def-src-item
is the identifier of an alphanumeric data item.
key-dest-item
is the identifier of a data item that defines a control key. Key-dest-item must specify an alphanumeric data item at least four characters in length.
stment
is an imperative statement executed for an AT END, NOT AT END, ON EXCEPTION or NOT ON EXCEPTION condition.
4format screen extensions CONTROL KEY
The ACCEPT statement makes low-volume data available to the program.
The DIGITAL extensions to the ACCEPT statement (forms 3 and 4) are
COBOL language additions that facilitate video forms design and data
handling.
Format 4 -
ACCEPT CONTROL KEY IN key-dest-item
{| { line-num } |}
{| FROM LINE NUMBER { line-id [ PLUS [ plus-num ] ] } |}
{| { PLUS [ plus-num ] } |}
{| { column-num } |}
{| FROM COLUMN NUMBER { column-id [ PLUS [ plus-num ] ] } |}
{| { PLUS [ plus-num ] } |}
{| ERASE [TO END OF] { SCREEN } |}
{| { LINE } |}
{| WITH BELL |}
{ [ ON EXCEPTION stment ] [ NOT ON EXCEPTION stment ] }
{ [ AT END stment ] [ NOT AT END stment ] }
[ END-ACCEPT ]
Additional information available:
line-numline-idcolumn-numcolumn-idplus-numkey-dest-itemstment
line-num
is a numeric literal that specifies a line position on the terminal screen. Line-num must be a positive integer. It cannot be zero.
line-id
is the identifier of a data item that provides a line position on the terminal screen.
column-num
is a numeric literal that specifies a column position on the terminal screen. Column-num must be a positive integer. It cannot be zero.
column-id
is the identifier of a data item that provides a column position on the terminal screen.
plus-num
is a numeric literal that increments the current value for line or column position, or that increments the value of line-id or column-id. Plus-num can be zero or a positive integer.
key-dest-item
is the identifier of a data item that defines a control key. Key-dest-item must specify an alphanumeric data item at least four characters in length.
stment
is an imperative statement executed for an AT END, NOT AT END, ON EXCEPTION or NOT ON EXCEPTION condition.
ADD
The ADD statement adds two or more numeric operands and stores the result.
Additional information available:
1format TO2format GIVING3format CORRESPONDING
1format TO
The ADD statement adds two or more numeric operands and stores the
result.
Format 1 -
ADD { num } ... TO { rsult [ ROUNDED ] } ...
[ ON SIZE ERROR stment ] [ NOT ON SIZE ERROR stment ]
[ END-ADD ]
Additional information available:
num
is a numeric literal or the identifier of an elementary numeric item.
rsult
is the identifier of an elementary numeric item. It is the resultant identifier.
stment
is an imperative statement.
2format GIVING
The ADD statement adds two or more numeric operands and stores the
result.
Format 2 -
ADD { num } ... TO { num } GIVING { rsult [ ROUNDED ] } ...
[ ON SIZE ERROR stment ] [ NOT ON SIZE ERROR stment ]
[ END-ADD ]
Additional information available:
num
is a numeric literal or the identifier of an elementary numeric item.
rsult
is the identifier of an elementary numeric item or an elementary numeric edited item. It is the resultant identifier.
stment
is an imperative statement.
3format CORRESPONDING
The ADD statement adds two or more numeric operands and stores the
result.
Format 3 -
ADD { CORRESPONDING } grp-1 TO grp-2 [ ROUNDED ]
{ CORR }
[ ON SIZE ERROR stment ] [ NOT ON SIZE ERROR stment ]
[ END-ADD ]
Additional information available:
grp
is the identifier of a numeric group item.
stment
is an imperative statement.
ALTER
The ALTER statement changes the destination of a GO TO statement.
Format -
ALTER { proc TO [ PROCEED TO ] new-proc } ...
Additional information available:
proc
is the name of a paragraph that contains one sentence: a GO TO statement without the DEPENDING phrase.
new-proc
is a procedure-name.
CALL
The CALL statement transfers control to another program in the executable
image.
Format -
CALL prog-name
[ {{{ [BY REFERENCE] } }} [{{BY REFERENCE } }] ]
[ {{{ BY CONTENT } }} [{{BY CONTENT } }] ]
[USING{{{ BY DESCRIPTOR }{arg}...}} [{{BY DESCRIPTOR}{arg}...}] ... ]
[ {{{ BY VALUE } }} [{{BY VALUE } }] ]
[ { OMITTED } [ OMITTED ] ]
[ GIVING function-res ]
{ [ ON EXCEPTION stment ] [ NOT ON EXCEPTION stment ] }
{ [ ON OVERFLOW stment ] [ NOT ON OVERFLOW stment ] }
[ END-CALL ]
Additional information available:
prog-nameargfunction-resstment
prog-name
is a nonnumeric literal or the identifier of an alphanumeric data item. It is the name of the program to which control transfers.
arg
is the argument. It identifies the data that is available to both the calling and called programs. It is any data item described in the Sub-Schema Section, File Section, Working-Storage Section, or Linkage Section, or it is a nonnumeric literal.
function-res
is the identifier of an elementary integer numeric data item with COMP, COMP-1, or COMP-2 usage and no scaling positions. Function-res can be subscripted, and it can be qualified. When control returns to the calling program, function-res can contain a function result.
stment
is an imperative statement.
CANCEL
The CANCEL statement removes the logical relationship to another program.
Format -
CANCEL { prog-name } ...
Additional information available:
prog-name
is a nonumeric literal or the identifier of an alphanumeric data item. It contains the program-name of the program to be cancelled.
CLOSE
The CLOSE statement ends processing of reels (or units) and files. It
can also perform rewind, lock, and removal operations.
Format -
{ [ { REEL } [ FOR REMOVAL ] ] }
CLOSE { file-name [ { UNIT } [ WITH NO REWIND ] ] } ...
{ [ WITH { NO REWIND } ] }
{ [ { LOCK } ] }
Additional information available:
file-name
is the name of a file described in the Data Division. It cannot be a sort or merge file.
COMMIT
The COMMIT statement ends your database transaction, makes permanent all
changes made to the database since the last quiet point, and establishes
a new quiet point for this run unit.
Format -
COMMIT [ RETAINING ]
[ ON ERROR stment ] [ NOT ON ERROR stment ]
[ END-COMMIT ]
Additional information available:
stment
is an imperative statement.
COMPUTE
The COMPUTE statement evaluates an arithmetic expression and stores the
result.
Format -
COMPUTE { rsult [ ROUNDED ] } ... = arithmetic-expression
[ ON SIZE ERROR stment ] [ NOT ON SIZE ERROR stment ]
[ END-COMPUTE ]
Additional information available:
rsult
is the identifier of an elementary numeric item or an elementary numeric edited item. It is the resultant identifier.
stment
is an imperative statement.
CONNECT
The CONNECT statement inserts the current record of the run unit as a
member record into one or more sets. The set occurrence for each
insertion is determined by the currency indicator for the corresponding
set type.
Format -
CONNECT [ record-name ] TO { { set-name } ... }
{ ALL }
[ [{| REALM |}] ]
[ RETAINING [{| RECORD |}] CURRENCY ]
[ [{| { SET [ set-name ] ... } |}] ]
[ [{| { { set-name } ... } |}] ]
[ ON ERROR stment ] [ NOT ON ERROR stment ]
[ END-CONNECT ]
Additional information available:
record-name
names a subschema record type.
set-name
names a subschema set type.
stment
is an imperative statement.
CONTINUE
The CONTINUE statement indicates that no executable statement is present. It causes an implicit control transfer to the next executable statement. Format - CONTINUE
DELETE
The DELETE statement logically removes a record from a mass storage file. Format - DELETE file-name RECORD [ INVALID KEY stment ] [ NOT INVALID KEY stment ] [ END-DELETE ]
Additional information available:
file-name
is the name of a relative or indexed file described in the Data Division. It cannot be the name of a sequential file or a sort or merge file.
stment
is an imperative statement.
DISCONNECT
The DISCONNECT statement logically removes the current record of the run
unit from one or more sets.
Format -
DISCONNECT [record-name] FROM { { set-name } ... }
{ ALL }
[ ON ERROR stment ] [ NOT ON ERROR stment ]
[ END-DISCONNECT ]
Additional information available:
record-name
names a subschema record type.
set-name
names a subschema set type.
stment
is an imperative statement.
DISPLAY
The DISPLAY statement transfers low-volume data from the program to the default system output device or to the object of a mnemonic-name. The DIGITAL extensions to the DISPLAY statement (format 2) are COBOL language additions that facilitate video forms design and data handling.
Additional information available:
1format statement2format screen extensions
1format statement
The DISPLAY statement transfers low-volume data from the program to the
default system output device or to the object of a mnemonic-name. The
DIGITAL extensions to the DISPLAY statement (format 2) are COBOL
language additions that facilitate video forms design and data
handling.
Format 1 -
DISPLAY { src-item } ... [ UPON output-dest ] [ WITH NO ADVANCING ]
Additional information available:
src-item
is a literal or the identifier of a data item. The literal can be any figurative constant including ALL literal.
output-dest
is a mnemonic-name defined in the SPECIAL-NAMES paragraph of the Environment Division.
2format screen extensions
The DISPLAY statement transfers low-volume data from the program to the
default system output device or to the object of a mnemonic-name. The
DIGITAL extensions to the DISPLAY statement (format 2) are COBOL
language additions that facilitate video forms design and data
handling.
Format 2 -
DISPLAY { src-item
[{| { line-num } |}] }
[{| AT LINE NUMBER { line-id [ PLUS [ plus-num ] ] } |}] }
[{| { PLUS [ plus-num ] } |}] }
[{| { column-num } |}] }
[{| AT COLUMN NUMBER { column-id [ PLUS [ plus-num ] ] } |}] }
[{| { PLUS [ plus-num ] } |}] }
[{| ERASE [TO END OF] { SCREEN } |}] } ...
[{| { LINE } |}] }
[{| WITH BELL |}] }
[{| UNDERLINED |}] }
[{| BOLD |}] }
[{| WITH BLINKING |}] }
[{| REVERSED |}] }
[{| WITH CONVERSION |}] }
[ WITH NO ADVANCING ]
Additional information available:
src-itemoutput-destline-numline-idcolumn-numcolumn-idplus-num
src-item
is a literal or the identifier of a data item. The literal can be any figurative constant except ALL literal.
output-dest
is a mnemonic-name defined in the SPECIAL-NAMES paragraph of the Environment Division.
line-num
is a numeric literal that specifies a line position on the terminal screen. Line-num must be a positive integer. It cannot be zero.
line-id
is the identifier of a data item that provides a line position on the terminal screen.
column-num
is a numeric literal that specifies a column position on the terminal screen. Column-num must be a positive integer. It cannot be zero.
column-id
is the identifier of a data item that provides a column position on the terminal screen.
plus-num
is a numeric literal that increments the current value for line or column position, or that increments the value of line-id or column-id. Plus-num can be zero or a positive integer.
DIVIDE
The DIVIDE statement divides one or more numeric data items by another. It stores the quotient and remainder.
Additional information available:
1format INTO2format INTO GIVING3format BY GIVING4format INTO with REMAINDER
5format BY with REMAINDER
1format INTO
The DIVIDE statement divides one or more numeric data items by another.
It stores the quotient and remainder.
Format 1 -
DIVIDE srcnum INTO { rsult [ ROUNDED ] } ...
[ ON SIZE ERROR stment ] [ NOT ON SIZE ERROR stment ]
[ END-DIVIDE ]
Additional information available:
srcnum
is a numeric literal or the identifier of an elementary numeric item.
rsult
is the identifier of an elementary numeric item. It is the resultant identifier.
stment
is an imperative statement.
2format INTO GIVING
The DIVIDE statement divides one or more numeric data items by another.
It stores the quotient and remainder.
Format 2 -
DIVIDE srcnum INTO srcnum GIVING { rsult [ ROUNDED ] } ...
[ ON SIZE ERROR stment ] [ NOT ON SIZE ERROR stment ]
[ END-DIVIDE ]
Additional information available:
srcnum
is a numeric literal or the identifier of an elementary numeric item.
rsult
is the identifier of an elementary numeric item or an elementary numeric edited item. It is the resultant identifier.
stment
is an imperative statement.
3format BY GIVING
The DIVIDE statement divides one or more numeric data items by another.
It stores the quotient and remainder.
Format 3 -
DIVIDE srcnum BY srcnum GIVING { rsult [ ROUNDED ] } ...
[ ON SIZE ERROR stment ] [ NOT ON SIZE ERROR stment ]
[ END-DIVIDE ]
Additional information available:
srcnum
is a numeric literal or the identifier of an elementary numeric item.
rsult
is the identifier of an elementary numeric item or an elementary numeric edited item. It is the resultant identifier.
stment
is an imperative statement.
4format INTO with REMAINDER
The DIVIDE statement divides one or more numeric data items by another.
It stores the quotient and remainder.
Format 4 -
DIVIDE srcnum INTO srcnum GIVING rsult [ ROUNDED ] REMAINDER remaind
[ ON SIZE ERROR stment ] [ NOT ON SIZE ERROR stment ]
[ END-DIVIDE ]
Additional information available:
srcnum
is a numeric literal or the identifier of an elementary numeric item.
rsult
is the identifier of an elementary numeric item or an elementary numeric edited item. It is the resultant identifier.
remaind
is the identifier of an elementary numeric item or an elementary numeric edited item.
stment
is an imperative statement.
5format BY with REMAINDER
The DIVIDE statement divides one or more numeric data items by another.
It stores the quotient and remainder.
Format 5 -
DIVIDE srcnum BY srcnum GIVING rsult [ ROUNDED ] REMAINDER remaind
[ ON SIZE ERROR stment ] [ NOT ON SIZE ERROR stment ]
[ END-DIVIDE ]
Additional information available:
srcnum
is a numeric literal or the identifier of an elementary numeric item.
rsult
is the identifier of an elementary numeric item or an elementary numeric edited item. It is the resultant identifier.
remaind
is the identifier of an elementary numeric item or an elementary numeric edited item.
stment
is an imperative statement.
ERASE
The ERASE statement deletes the current record of the run unit from the
database. Additional records owned by the current record may also be
deleted and/or disconnected.
Format -
ERASE [ ALL ] [ record-name ]
[ ON ERROR stment ] [ NOT ON ERROR stment ]
[ END-ERASE ]
Additional information available:
record-name
names a subschema record type.
stment
is an imperative statement.
EVALUATE
The EVALUATE statement selects a program action based on the evaluation
of one or more conditions.
Format -
{ subj-item } [ { subj-item } ]
EVALUATE { TRUE } [ ALSO { TRUE } ] ...
{ FALSE } [ { FALSE } ]
{ { { ANY }
{ { { cond }
{ {WHEN{ TRUE }
{ { { FALSE }
{ { { [NOT] {obj-item [{THRU } obj-item]} }
{ { { { [{THROUGH} ]} }
[ { ANY }] } }
[ { cond }] } }
[ALSO { TRUE }] ... } ... stment} ...
[ { FALSE }] } }
[ { [NOT] {obj-item [{THRU } obj-item]}}] } }
[ { { [{THROUGH} ]}}] } }
[ WHEN OTHER stment ]
[ END-EVALUATE ]
Additional information available:
subj-item
is an identifier, an arithmetic or conditional expression, or a literal other than the figurative constant ZERO.
cond
is a conditional expression.
obj-item
is a literal, an identifier, or an arithmetic expression.
stment
is an imperative statement.
EXIT
The EXIT statement provides a common logical end point for a series of procedures. The EXIT PROGRAM statement marks the logical end of a called program.
Additional information available:
1statement
The EXIT statement provides a common logical end point for a series of procedures. Format - EXIT
2statement PROGRAM
The EXIT PROGRAM statement marks the logical end of a called program. Format - EXIT PROGRAM
FETCH
The FETCH statement is a combined FIND and GET that establishes a
specific record in the database as the current record of the run unit and
makes the record available to the run unit in the User Work Area.
Format -
FETCH database-record
[ FOR UPDATE ]
[ [{| REALM |}] ]
[RETAINING [{| RECORD |}] CURRENCY]
[ [{| { SET [ set-name ] ... } |}] ]
[ [{| { { set-name } ... } |}] ]
[{ [ AT END stment ] [ NOT AT END stment ] } ]
[{ [ ON ERROR stment ] [ NOT ON ERROR stment ] } ]
[ END-FETCH ]
Additional information available:
database-record
represents a record selection expression. References are made to a record in the data-base according to the rules for Record Selection Expressions.
set-name
names a subschema set type.
stment
is an imperative statement.
FIND
The FIND statement locates a specific record in the database and establishes it as the current record of the run unit. The FIND ALL statement locates zero or more records in the database and inserts them into the named keeplist.
Additional information available:
1format
The FIND statement locates a specific record in the database and
establishes it as the current record of the run unit.
Format 1 -
FIND database-record [ FOR UPDATE ]
[ [{| REALM |}] ]
[RETAINING [{| RECORD |}] CURRENCY]
[ [{| { SET [ set-name ] ... } |}] ]
[ [{| { { set-name } ... } |}] ]
[{ [ AT END stment ] [ NOT AT END stment ] } ]
[{ [ ON ERROR stment ] [ NOT ON ERROR stment ] } ]
[ END-FIND ]
Additional information available:
database-record
represents a record selection expression. References are made to a record in the database according to the rules for Record Selection Expressions.
set-name
names a subschema set type.
stment
is an imperative statement.
2format ALL
The FIND ALL statement locates zero or more records in the database and
inserts them into the named keeplist.
Format 2 -
FIND ALL keeplist-name [ record-name ] [ WITHIN { realm-name } ]
[ { set-name } ]
[ USING { rec-key } ... ] [ FOR UPDATE ]
[ WHERE { bool-exp } ]
[{ [ AT END stment ] [ NOT AT END stment ] } ]
[{ [ ON ERROR stment ] [ NOT ON ERROR stment ] } ]
[ END-FIND ]
Additional information available:
keeplist-namerecord-namerealm-nameset-namerec-keybool-expstment
keeplist-name
names a keeplist in the Sub-Schema Section.
record-name
is a subschema record name.
realm-name
is a subschema realm name.
set-name
is a subschema set name.
rec-key
is a key data item within the subschema record occurrence. The same rec-key can appear only once in a given USING phrase.
bool-exp
is a conditional expression that involves data items of the object record. It is used to specify additional requirements of a qualifying record.
stment
is an imperative statement.
FREE
The FREE statement empties selected keeplists or removes a database key
value from a keeplist or currency indicator.
Format -
{ [ { record-name } ] }
{ CURRENT [ WITHIN { set-name } ] }
{ [ { realm-name } ] }
FREE { { OFFSET integer-exp } }
{ { FIRST } WITHIN keeplist-name }
{ { LAST } }
{ ALL [ { FROM { keeplist-name } ... } ] }
{ [ { CURRENT } ] }
[ ON ERROR stment ] [ NOT ON ERROR stment ]
[ END-FREE ]
Additional information available:
record-nameset-namerealm-nameinteger-expkeeplist-namestment
record-name
is a subschema record name.
set-name
is a subschema set name.
realm-name
is a subschema realm name.
integer-exp
is an arithmetic expression or integer. It refers to a position in keeplist-name. Integer-exp cannot be zero.
keeplist-name
names a keeplist in the Sub-Schema Section.
stment
is an imperative statement.
GENERATE
The GENERATE statement directs the Report Writer Control System (RWCS) to produce a report according to the Report Description entry (RD) in the Report Section of the Data Division. Format - GENERATE report-item
Additional information available:
report-item
names either a report-name in a Report Description entry, or the group-data-name of a TYPE IS DETAIL report group.
GET
The GET statement moves the contents of the current database record of
the run unit to your User Work Area.
Format -
GET [ record-name ]
[ { record-item } ... ]
[ ON ERROR stment ] [ NOT ON ERROR stment ]
[ END-GET ]
Additional information available:
record-name
names a database subschema record type.
record-item
is a group or elementary data item in a subschema record type. Record-item may be qualified.
stment
is an imperative statement.
GO_TO
The GO TO statement transfers control from one part of the Procedure Division to another.
Additional information available:
1format
The GO TO statement transfers control from one part of the Procedure Division to another. Format 1 - GO TO [ proc-name ]
Additional information available:
proc-name
is a procedure-name.
2format DEPENDING
The GO TO statement transfers control from one part of the Procedure
Division to another.
Format 2 -
GO TO { proc-name } ... DEPENDING ON num
Additional information available:
proc-name
is a procedure-name.
num
is the identifier of an elementary numeric item described with no positions to the right of the assumed decimal point.
IF
The IF statement evaluates a condition. The condition's truth value
determines the program action that follows.
Format -
IF condition THEN { { stment-1 } ... }
{ NEXT SENTENCE }
[ ELSE { stment-2 } ... [ END-IF ] ]
[ ELSE NEXT SENTENCE ]
[ END-IF ]
Additional information available:
stment
an imperative or conditional statement. An imperative statement can precede a conditional statement.
INITIALIZE
The INITIALIZE statement sets selected types of data fields to
predetermined values.
Format -
INITIALIZE { fld-name } ...
[ { { ALPHABETIC } } ]
[ { { ALPHANUMERIC } } ]
[ REPLACING { { NUMERIC } DATA BY val } ... ]
[ { { ALPHANUMERIC-EDITED } } ]
[ { { NUMERIC-EDITED } } ]
Additional information available:
fld-name
is the identifier of the receiving area data item.
val
is the sending area. It can be a literal or the identifier of a data item.
INITIATE
The INITIATE statement causes the Report Writer Control System (RWCS) to
begin processing a report.
Format -
INITIATE { report-name } ...
Additional information available:
report-name
names a report defined by a Report Description entry (RD) in the Report Section of the Data Division.
INSPECT
The INSPECT statement counts or replaces occurrences of single characters or groups of characters in a data item.
Additional information available:
1format TALLYING2format REPLACING3format TALLYING REPLACING
4format CONVERTING
1format TALLYING
The INSPECT statement counts or replaces occurrences of single
characters or groups of characters in a data item.
Format 1 -
INSPECT src-string TALLYING
{
{ tally-ctr FOR
{
{
{ [ { BEFORE } ] } }
{ CHARACTERS [ { AFTER } INITIAL delim-val ] ... } ... } ...
{ { ALL } {
{ { LEADING } { compare-val
[{ BEFORE } ] } } }
[{ AFTER } INITIAL delim-val ] ... } ... } ... } ...
Additional information available:
src-stringtally-ctrcompare-valdelim-val
src-string
is the identifier of a group item or an elementary data item with DISPLAY usage. INSPECT operates on the contents of this data item.
tally-ctr
is the identifier of an elementary numeric data item.
compare-val
is the character-string INSPECT uses for comparison. It is a nonnumeric literal (or figurative constant other than ALL literal) or the identifier of an elementary alphabetic, alphanumeric, or numeric data item with DISPLAY usage.
delim-val
is the character-string that delimits the INSPECT operation. Its content restrictions are the same as those for compare-val.
2format REPLACING
The INSPECT statement counts or replaces occurrences of single
characters or groups of characters in a data item.
Format 2 -
INSPECT src-string REPLACING
{ CHARACTERS BY replace-char [{ BEFORE } INITIAL delim-val] ... }
{ [{ AFTER } ] }
{ { ALL } } ...
{ { LEADING } { compare-val BY replace-val
{ { FIRST }
[ { BEFORE } INITIAL delim-val ] ... } ... }
[ { AFTER } ] } }
Additional information available:
src-stringcompare-valdelim-valreplace-charreplace-val
src-string
is the identifier of a group item or an elementary data item with DISPLAY usage. INSPECT operates on the contents of this data item.
compare-val
is the character-string INSPECT uses for comparison. It is a nonnumeric literal (or figurative constant other than ALL literal) or the identifier of an elementary alphabetic, alphanumeric, or numeric data item with DISPLAY usage.
delim-val
is the character-string that delimits the INSPECT operation. Its content restrictions are the same as those for compare-val.
replace-char
is the one-character item that replaces all characters. Its content restrictions are the same as those for compare-val.
replace-val
is the character-string that replaces occurrences of compare-val. Its content restrictions are the same as those for compare-val.
3format TALLYING REPLACING
The INSPECT statement counts or replaces occurrences of single
characters or groups of characters in a data item.
Format 3 -
INSPECT src-string TALLYING
{
{ tally-ctr FOR
{
{
{ [ { BEFORE } ] } }
{ CHARACTERS [ { AFTER } INITIAL delim-val ] ... } ... } ...
{ { ALL } {
{ { LEADING } { compare-val
{
[{ BEFORE } ] } } }
[{ AFTER } INITIAL delim-val ] ... } ... } ... } ...
REPLACING
{ CHARACTERS BY replace-char [{ BEFORE } INITIAL delim-val] ... }
{ [{ AFTER } ] }
{ { ALL } } ...
{ { LEADING } { compare-val BY replace-val
{ { FIRST }
[ { BEFORE } INITIAL delim-val ] ... } ... }
[ { AFTER } ] } }
Additional information available:
src-stringtally-ctrcompare-valdelim-valreplace-charreplace-val
src-string
is the identifier of a group item or an elementary data item with DISPLAY usage. INSPECT operates on the contents of this data item.
tally-ctr
is the identifier of an elementary numeric data item.
compare-val
is the character-string INSPECT uses for comparison. It is a nonnumeric literal (or figurative constant other than ALL literal) or the identifier of an elementary alphabetic, alphanumeric, or numeric data item with DISPLAY usage.
delim-val
is the character-string that delimits the INSPECT operation. Its content restrictions are the same as those for compare-val.
replace-char
is the one-character item that replaces all characters. Its content restrictions are the same as those for compare-val.
replace-val
is the character-string that replaces occurrences of compare-val. Its content restrictions are the same as those for compare-val.
4format CONVERTING
The INSPECT statement counts or replaces occurrences of single
characters or groups of characters in a data item.
Format 4 -
INSPECT src-string CONVERTING
compare-chars TO convert-chars
[ { BEFORE } INITIAL delim-val ] ...
[ { AFTER } ]
Additional information available:
src-stringdelim-valcompare-charsconvert-chars
src-string
is the identifier of a group item or an elementary data item with DISPLAY usage. INSPECT operates on the contents of this data item.
delim-val
is the character-string that delimits the INSPECT operation. Its content restrictions are the same as those for compare-val.
compare-chars
is the string that contains the individual characters that convert to those in convert-chars. It is the same kind of item as compare-val.
convert-chars
is the string that contains the individual characters to which the characters in compare-chars convert. It is the same kind of item as compare-val.
KEEP
The KEEP statement inserts a database key value from a currency indicator
or keeplist into a keeplist.
Format -
[ [ { record-name } ] ]
[ CURRENT [ WITHIN { set-name } ] ]
[ [ { realm-name } ] ]
KEEP [ { OFFSET integer-exp } ]
[ { FIRST } WITHIN keeplist-name ]
[ { LAST } ]
USING destination-keeplist
[ ON ERROR stment ] [ NOT ON ERROR stment ]
[ END-KEEP ]
Additional information available:
record-nameset-namerealm-nameinteger-expkeeplist-namedestination-keeplist
stment
record-name
is a subschema record name.
set-name
is a subschema set name.
realm-name
is a subschema realm name.
integer-exp
is an arithmetic expression or integer. It refers to a position in keeplist-name. Integer-exp cannot be zero.
keeplist-name
names a keeplist in the Sub-Schema Section.
destination-keeplist
names a keeplist in the Sub-Schema Section to receive the database key value.
stment
is an imperative statement.
MERGE
The MERGE statement takes two or more identically sequenced files and
combines them according to the key values you specify. During the
process, it makes records available, in merged order, to routines in
OUTPUT PROCEDURE or to an output file.
Format -
MERGE mergefile
{ ON { ASCENDING } KEY { mergekey } ... } ...
{ { DESCENDING } }
[ COLLATING SEQUENCE IS alpha ]
USING infile { infile } ...
{ OUTPUT PROCEDURE IS first-proc [ { THRU } end-proc ] }
{ [ { THROUGH } ] }
{ GIVING { outfile } ... }
Additional information available:
mergefilemergekeyalphainfilefirst-procend-procoutfile
mergefile
is a file-name described in a sort-merge file description (SD) entry in the Data Division.
mergekey
is the data-name of a data item in a record associated with mergefile.
alpha
is an alphabet-name defined in the SPECIAL-NAMES paragraph of the Environment Division.
infile
is the file-name of an input file. It must be described in a file description (FD) entry in the Data Division.
first-proc
is the section-name or paragraph-name of the output procedure's first (or only) section or paragraph.
end-proc
is the section-name or paragraph-name of the output procedure's last section or paragraph.
outfile
is the file-name of an output file. It must be described in a file description (FD) entry in the Data Division.
MODIFY
The MODIFY statement changes the contents of specified data items in a
database record.
Format -
MODIFY [ record-name ]
[ { record-item } ... ]
[ [{| REALM |}] ]
[RETAINING [{| RECORD |}] CURRENCY]
[ [{| { SET [ set-name ] ... } |}] ]
[ [{| { { set-name } ... } |}] ]
[ ON ERROR stment ] [ NOT ON ERROR stment ]
[ END-MODIFY ]
Additional information available:
record-namerecord-itemset-namestment
record-name
names a database subschema record type.
record-item
is a group or elementary data item in a subschema record type. Record-item can be qualified.
set-name
names a subschema set type.
stment
is an imperative statement.
MOVE
The MOVE statement transfers data to one or more data areas. The editing rules control data transfer.
Additional information available:
1format
The MOVE statement transfers data to one or more data areas. The
editing rules control data transfer.
Format 1 -
MOVE { src-item } TO { dest-item } ...
{ lit }
Additional information available:
src-item
is an identifier that represents the sending area.
lit
is a literal that represents the sending area.
dest-item
is an identifier that represents the receiving area.
2format CORRESPONDING
The MOVE statement transfers data to one or more data areas. The
editing rules control data transfer.
Format 2 -
MOVE { CORRESPONDING } src-item TO dest-item
{ CORR }
Additional information available:
src-item
is an identifier that represents the sending area.
dest-item
is an identifier that represents the receiving area.
MULTIPLY
The MULTIPLY statement multiplies two numeric operands and stores the result.
Additional information available:
1format
The MULTIPLY statement multiplies two numeric operands and stores the
result.
Format 1 -
MULTIPLY srcnum BY { rsult [ ROUNDED ] } ...
[ ON SIZE ERROR stment ] [ NOT ON SIZE ERROR stment ]
[ END-MULTIPLY ]
Additional information available:
srcnum
is a numeric literal or the identifier of an elementary numeric item.
rsult
is the identifier of an elementary numeric item. It is the resultant identifier.
stment
is an imperative statement.
2format GIVING
The MULTIPLY statement multiplies two numeric operands and stores the
result.
Format 2 -
MULTIPLY srcnum BY srcnum GIVING { rsult [ ROUNDED ] } ...
[ ON SIZE ERROR stment ] [ NOT ON SIZE ERROR stment ]
[ END-MULTIPLY ]
Additional information available:
srcnum
is a numeric literal or the identifier of an elementary numeric item.
rsult
is the identifier of an elementary numeric item or an elementary numeric edited item. It is the resultant identifier.
stment
is an imperative statement.
OPEN
The OPEN statement creates an access stream to the file, makes the file available to the program, begins the processing of a file, and specifies file sharing.
Additional information available:
1format sequential relative indexed2format report writer
1format sequential relative indexed
The OPEN statement creates an access stream to the file, makes the file
available to the program, begins the processing of a file, and
specifies file sharing.
Format 1 - Sequential, Relative, Indexed
{ { [ {NO OTHERS }]} }
{ { [ {{|READERS |}}]} }
{{INPUT }{file-name[WITH NO REWIND][ALLOWING{{|WRITERS |}}]}...}
{{OUTPUT}{ [ {{|UPDATERS|}}]} }
{ { [ {ALL }]} }
OPEN{ }...
{ { [ { NO OTHERS } ]} }
{ { [ { {| READERS |}} ]} }
{{EXTEND}{ file-name [ALLOWING { {| WRITERS |}} ]}...}
{{I-O }{ [ { {| UPDATERS |}} ]} }
{ { [ { ALL } ]} }
Additional information available:
file-name
is the name of a file described in the Data Division. It cannot be the name of a sort or merge file.
2format report writer
The OPEN statement creates an access stream to the file, makes the file
available to the program, begins the processing of a file, and
specifies file sharing.
Format 2 - Report Writer
OPEN { OUTPUT { file-name [ WITH NO REWIND ] } ... } ...
{ EXTEND { file-name } ... }
Additional information available:
file-name
is the name of a file described in the Data Division. It cannot be the name of a sort or merge file.
PERFORM
The PERFORM statement executes one or more procedures. It returns control to the end of the PERFORM statement when procedure execution ends.
Additional information available:
1format2format repeat-count3format UNTIL4format VARYING
1format
The PERFORM statement executes one or more procedures. It returns
control to the end of the PERFORM statement when procedure execution
ends.
Format 1 -
PERFORM [first-proc [ { THRU } end-proc ]]
[ [ { THROUGH } ]]
[ stment END-PERFORM ]
Additional information available:
first-proc
is a procedure-name that identifies a paragraph or section in the Procedure Division. The set of statements in first-proc are the first (or only) set of statements in the PERFORM range.
end-proc
is a procedure-name that identifies a paragraph or section in the Procedure Division. The set of statements in end-proc are the last set of statements in the PERFORM range.
stment
is an imperative statement.
2format repeat-count
The PERFORM statement executes one or more procedures. It returns
control to the end of the PERFORM statement when procedure execution
ends.
Format 2 -
PERFORM [first-proc [ { THRU } end-proc ]] repeat-count TIMES
[ [ { THROUGH } ]]
[ stment END-PERFORM ]
Additional information available:
first-procend-procstmentrepeat-count
first-proc
is a procedure-name that identifies a paragraph or section in the Procedure Division. The set of statements in first-proc are the first (or only) set of statements in the PERFORM range.
end-proc
is a procedure-name that identifies a paragraph or section in the Procedure Division. The set of statements in end-proc are the last set of statements in the PERFORM range.
stment
is an imperative statement.
repeat-count
is a numeric integer literal or the identifier of a numeric integer elementary item. It controls how many times the statement set (or sets) executes.
3format UNTIL
The PERFORM statement executes one or more procedures. It returns
control to the end of the PERFORM statement when procedure execution
ends.
Format 3 -
PERFORM [first-proc [ { THRU } end-proc ]] [ WITH TEST { BEFORE } ]
[ [ { THROUGH } ]] [ { AFTER } ]
UNTIL cond
[ stment END-PERFORM ]
Additional information available:
first-proc
is a procedure-name that identifies a paragraph or section in the Procedure Division. The set of statements in first-proc are the first (or only) set of statements in the PERFORM range.
end-proc
is a procedure-name that identifies a paragraph or section in the Procedure Division. The set of statements in end-proc are the last set of statements in the PERFORM range.
stment
is an imperative statement.
cond
can be any conditional expression.
4format VARYING
The PERFORM statement executes one or more procedures. It returns
control to the end of the PERFORM statement when procedure execution
ends.
Format 4 -
PERFORM [first-proc [ { THRU } end-proc ]] [ WITH TEST { BEFORE } ]
[ [ { THROUGH } ]] [ { AFTER } ]
VARYING var FROM init BY increm UNTIL cond
[ AFTER var FROM init BY increm UNTIL cond ] ...
[ stment END-PERFORM ]
Additional information available:
first-procend-procstmentcondvarinitincrem
first-proc
is a procedure-name that identifies a paragraph or section in the Procedure Division. The set of statements in first-proc are the first (or only) set of statements in the PERFORM range.
end-proc
is a procedure-name that identifies a paragraph or section in the Procedure Division. The set of statements in end-proc are the last set of statements in the PERFORM range.
stment
is an imperative statement.
cond
can be any conditional expression.
var
is an index-name or the identifier of a numeric elementary data item. Its value is changed by increm each time all statements in the PERFORM range execute.
init
is a numeric literal, index-name, or the identifier of a numeric elementary data item. It specifies the value of var before any statement in the PERFORM range executes.
increm
is a nonzero numeric literal or the identifier of a numeric elementary data item. It systematically changes the value of var each time the program executes all statements in the PERFORM range.
READ
For sequential access files, the READ statement makes the next logical record available. For random access files, READ makes a specified record available.
Additional information available:
1format sequential2format random dynamic
1format sequential
For sequential access files, the READ statement makes the next logical
record available.
Format 1 -
READ file-name [ NEXT ] RECORD [ INTO dest-item ]
[ REGARDLESS OF LOCK ]
[ { UPDATERS } ]
[ ALLOWING { READERS } ]
[ { NO OTHERS } ]
[ AT END stment ] [ NOT AT END stment ]
[ END-READ ]
Additional information available:
file-name
is the name of a file described in the Data Division. It cannot be a sort or merge file.
dest-item
is the identifier of a data item that receives the record accessed by the READ statement.
stment
is an imperative statement executed for an at end or not at end condition.
2format random dynamic
For random access files, READ makes a specified record available.
Format 2 -
READ file-name RECORD [ INTO dest-item ]
[ REGARDLESS OF LOCK ]
[ { UPDATERS } ]
[ ALLOWING { READERS } ]
[ { NO OTHERS } ]
[ KEY IS key-name ]
[ INVALID KEY stment ] [ NOT INVALID KEY stment ]
[ END-READ ]
Additional information available:
file-namedest-itemkey-namestment
file-name
is the name of a file described in the Data Division. It cannot be a sort or merge file.
dest-item
is the identifier of a data item that receives the record accessed by the READ statement.
key-name
is the data-name of a data item specified as a record key for file-name. It can be qualified.
stment
is an imperative statement executed for an invalid key or not invalid key condition.
READY
The READY statement begins a database transaction, prepares one or more
database realms for processing, and places each specified realm in a
ready mode.
Format -
READY [ realm-name ] ...
[ { { CONCURRENT } } ]
[ { { EXCLUSIVE } [ { RETRIEVAL } ] } ]
[ { { PROTECTED } [ { UPDATE } ] } ]
[ USAGE-MODE IS { { BATCH } } ]
[ { [ { CONCURRENT } ] } ]
[ { { RETRIEVAL } [ { EXCLUSIVE } ] } ]
[ { { UPDATE } [ { PROTECTED } ] } ]
[ { [ { BATCH } ] } ]
[ WITH WAIT ]
[ ON ERROR stment ] [ NOT ON ERROR stment ]
[ END-READY ]
Additional information available:
realm-name
names a subschema realm name.
stment
is an imperative statement.
RECONNECT
The RECONNECT statement moves the current database record of the run unit
from one set to another (possibly the same) set.
Format -
RECONNECT [ record-name ] WITHIN { { set-name } ... }
{ ALL }
[ [{| REALM |}] ]
[ RETAINING [{| RECORD |}] CURRENCY ]
[ [{| { SET [ set-name ] ... } |}] ]
[ [{| { { set-name } ... } |}] ]
[ ON ERROR stment ] [ NOT ON ERROR stment ]
[ END-RECONNECT ]
Additional information available:
record-name
names a subschema record type.
set-name
names a subschema set type.
stment
is an imperative statement.
RECORD
The RECORD statement creates a VAX Common Data Dictionary/Plus (CDD/Plus) dependency relationship between a COBOL program and a dictionary entity stored in CDD/Plus. For this statement to be meaningful, you must compile your program with the /DEPENDENCY_DATA qualifier. RECORD DEPENDENCY pathname [ TYPE IS rel-type ] [ IN DICTIONARY ].
Additional information available:
pathname
is a partial or full VAX CDD/Plus pathname. It specifies a CDD/Plus dictionary entity stored in CDO format.
rel-type
is a valid CDD/Plus protocol. It specifies the type of relationship to be created between the VAX COBOL program and the CDO dictionary entity specified in the pathname. The default is CDD$COMPILED_DEPENDS_ON.
RELEASE
The RELEASE statement transfers records to the initial phase of a sort operation. Format - RELEASE rec [ FROM src-area ]
Additional information available:
rec
is the name of a logical record in a sort-merge file description (SD) entry. It can be qualified.
src-area
is the identifier of the data item that contains the data.
RETURN
The RETURN statement gets sorted records from a sort operation. It also
returns merged records in a merge operation.
Format -
RETURN smrg-file RECORD [ INTO dest-area ]
AT END stment [ NOT AT END stment ]
[ END-RETURN ]
Additional information available:
smrg-file
is the name of a file described in a sort-merge file description (SD) entry.
dest-area
is the identifier of the data item to which the returned smrg-file record is moved.
stment
is an imperative statement.
REWRITE
The REWRITE statement logically replaces a mass storage file record.
Format -
REWRITE rec-name [ FROM src-item ] [ ALLOWING NO OTHERS ]
[ INVALID KEY stment ] [ NOT INVALID KEY stment ]
[ END-REWRITE ]
Additional information available:
rec-name
is the name of a logical record in the Data Division File Section. It can be qualified.
src-item
is the identifier of the data item that contains the data.
stment
is an imperative statement.
ROLLBACK
The ROLLBACK statement ends your database transaction, nullifies all database changes made by this run unit since its last quiet point, and establishes a new quiet point for this run unit. Format - ROLLBACK [ ON ERROR stment ] [ NOT ON ERROR stment ] [ END-ROLLBACK ]
Additional information available:
stment
is an imperative statement.
SEARCH
The SEARCH statement searches for a table element that satisfies a condition. It sets the value of the associated index to point to the table element.
Additional information available:
1format serial
The SEARCH statement searches for a table element that satisfies a
condition. It sets the value of the associated index to point to the
table element.
Format 1 -
SEARCH src-table [ VARYING pointr ] [ AT END stment ]
{ WHEN cond { stment } } ... [ END-SEARCH ]
{ { NEXT SENTENCE } }
Additional information available:
src-table
is a table identifier.
pointr
is an index-name or the identifier of a data item described as USAGE INDEX, or an elementary numeric data item with no positions to the right of the assumed decimal point.
cond
is any conditional expression.
stment
is an imperative statement.
2format binary
The SEARCH statement searches for a table element that satisfies a
condition. It sets the value of the associated index to point to the
table element.
Format 2 -
SEARCH ALL src-table [ AT END stment ]
WHEN { elemnt { IS EQUAL TO } arg }
{ { IS = } }
{ cond-name }
[ AND { elemnt { IS EQUAL TO } arg } ] ...
[ { { IS = } } ]
[ { cond-name } ]
{ stment } [ END-SEARCH ]
{ NEXT SENTENCE }
Additional information available:
src-tablestmentelemntargcond-name
src-table
is a table identifier.
stment
is an imperative statement.
elemnt
is an indexed data-name. It refers to the table element against which the argument is compared.
arg
is the argument tested against each element (elemnt) in the search. It is an identifier, a literal, or an arithmetic expression.
cond-name
is a condition-name.
SET
The SET statement sets values of indexes associated with table elements. It can also change the value of a conditional variable, change the status of an external switch, and store the address of a COBOL identifier reference at run time.
Additional information available:
1format TO2format UP DOWN3format cond-name4format switch-name
5format REFERENCE6format SUCCESS FAILURE
1format TO
The SET statement sets values of indexes associated with table
elements. It can also change the value of a conditional variable,
change the status of an external switch, and store the address of a
COBOL identifier reference at run time.
Format 1 -
SET { rsult } ... TO val
Additional information available:
rsult
is an index-name, the identifier of an index data item, or an elementary numeric data item described as an integer.
val
is a positive integer, which may be signed. It can also be an index-name (or the identifier of an index data item) or an elementary numeric data item described as an integer.
2format UP DOWN
The SET statement sets values of indexes associated with table
elements. It can also change the value of a conditional variable,
change the status of an external switch, and store the address of a
COBOL identifier reference at run time.
Format 2 -
SET { indx } ... { UP BY } increm
{ DOWN BY }
Additional information available:
indx
is an index-name.
increm
is an integer, which may be signed. It can also be the identifier of an elementary numeric data item described as an integer.
3format cond-name
The SET statement sets values of indexes associated with table
elements. It can also change the value of a conditional variable,
change the status of an external switch, and store the address of a
COBOL identifier reference at run time.
Format 3 -
SET { cond-name } ... TO TRUE
Additional information available:
cond-name
is a condition-name that must be associated with a conditional variable.
4format switch-name
The SET statement sets values of indexes associated with table
elements. It can also change the value of a conditional variable,
change the status of an external switch, and store the address of a
COBOL identifier reference at run time.
Format 4 -
SET { { switch-name } ... TO { ON } } ...
{ { OFF } }
Additional information available:
switch-name
is the name of an external switch defined in the SPECIAL-NAMES paragraph.
5format REFERENCE
The SET statement sets values of indexes associated with table elements. It can also change the value of a conditional variable, change the status of an external switch, and store the address of a COBOL identifier reference at run time. Format 5 - SET pointer-id TO REFERENCE OF identifier
Additional information available:
pointer-id
is a data-name whose data description entry must contain the USAGE IS POINTER clause.
identifier
is a data item in the File, Working-Storage, Linkage, or Sub-Schema Section.
6format SUCCESS FAILURE
The SET statement sets values of indexes associated with table
elements. It can also change the value of a conditional variable,
change the status of an external switch, and store the address of a
COBOL identifier reference at run time.
Format 6 -
SET status-code-id TO { SUCCESS }
{ FAILURE }
Additional information available:
status-code-id
is a word or longword integer data item represented by PIC S9(1) to S9(9) COMP.
SORT
The SORT statement creates a sort file by executing input procedures or
transferring records from an input file. It sorts the records in the
sort file using one or more keys that you specify. Finally, it returns
each record from the sort file, in sorted order, to output procedures or
an output file.
Format -
SORT sortfile { ON { ASCENDING } KEY { sortkey } ... } ...
{ { DESCENDING } }
[ WITH DUPLICATES IN ORDER ]
[ COLLATING SEQUENCE IS alpha ]
{ INPUT PROCEDURE IS first-proc [ { THRU } end-proc ] }
{ [ { THROUGH } ] }
{ USING { infile } ... }
{ OUTPUT PROCEDURE IS first-proc [ { THRU } end-proc ] }
{ [ { THROUGH } ] }
{ GIVING { outfile } ... }
Additional information available:
sortfilesortkeyalphafirst-procinfileend-procoutfile
sortfile
is a file-name described in a sort-merge file description (SD) entry in the Data Division.
sortkey
is the data-name of a data item in a record associated with sortfile.
alpha
is an alphabet-name defined in the SPECIAL-NAMES paragraph of the Environment Division.
first-proc
is the section-name or paragraph-name of the first (or only) section or paragraph of the INPUT or OUTPUT procedure range.
infile
is the file-name of the input file. It must be described in a file description (FD) entry in the Data Division.
end-proc
is the section-name or paragraph-name of the last section or paragraph of the INPUT or OUTPUT procedure range.
outfile
is the file-name of the output file. It must be described in a file description (FD) entry in the Data Division.
START
The START statement establishes the logical position of the Next Record
Pointer in an indexed or relative file. The logical position affects
subsequent sequential record retrieval.
Format -
[ { IS EQUAL TO } ]
[ { IS = } ]
[ { IS GREATER THAN } ]
START file-name [ KEY { IS > } key-data ]
[ { IS NOT LESS THAN } ]
[ { IS NOT < } ]
[ { IS GREATER THAN OR EQUAL TO } ]
[ { IS >= } ]
[ REGARDLESS OF LOCK ]
[ { UPDATERS } ]
[ ALLOWING { READERS } ]
[ { NO OTHERS } ]
[ INVALID KEY stment ] [ NOT INVALID KEY stment ]
[ END-START ]
Additional information available:
file-name
is the name of an indexed or relative file with sequential or dynamic access. It cannot be the name of a sort or merge file.
key-data
is the data-name of a record-key, or the leftmost part of a record key, or the relative key for file-name. It can be qualified.
stment
is an imperative statement.
STOP
The STOP statement permanently terminates or temporarily suspends image
execution.
Format -
STOP { RUN }
{ disp }
Additional information available:
disp
is any literal, or any figurative constant except ALL literal.
STORE
The STORE statement stores a new record in the database, establishes the
record as an owner of an empty set of each set type for which the record
is an owner record type, and connects the record as a member to the
current set of each set type for which the record is an AUTOMATIC member
record type.
Format -
STORE record-name [ [ NEXT TO ] DBKEY ] [ WITHIN { realm-name } ... ]
[ [{| REALM |}] ]
[ RETAINING [{| RECORD |}] CURRENCY ]
[ [{| { SET [ set-name ] ... } |}] ]
[ [{| { { set-name } ... } |}] ]
[ ON ERROR stment ] [ NOT ON ERROR stment ]
[ END-STORE ]
Additional information available:
record-namerealm-nameset-namestment
record-name
names a subschema record type.
realm-name
names a subschema realm.
set-name
names a subschema set type.
stment
is an imperative statement.
STRING
The STRING statement concatenates the partial or complete contents of one
or more data items into a single data item.
Format -
STRING { { src-string } ... DELIMITED BY { delim } } ...
{ { SIZE } }
INTO dest-string [ WITH POINTER pointr ]
[ ON OVERFLOW stment ] [ NOT ON OVERFLOW stment ]
[ END-STRING ]
Additional information available:
src-stringdelimdest-stringpointrstment
src-string
is a nonnumeric literal or identifier of a DISPLAY data item. It is the sending area.
delim
is a nonnumeric literal or the identifier of a DISPLAY data item. It is the delimiter of src-string.
dest-string
is the identifier of a DISPLAY data item. It cannot be reference modified. Dest-string is the receiving area that contains the result of the concatenated src-strings.
pointr
is an elementary numeric data item described as an integer. It points to the position in dest-string to contain the next character moved.
stment
is an imperative statement.
SUBTRACT
The SUBTRACT statement subtracts one, or the sum of two or more, numeric items from one or more items. It stores the result in one or more items.
Additional information available:
1format FROM2format GIVING3format CORRESPONDING
1format FROM
The SUBTRACT statement subtracts one, or the sum of two or more,
numeric items from one or more items. It stores the result in one or
more items.
Format 1 -
SUBTRACT { num } ... FROM { rsult [ ROUNDED ] } ...
[ ON SIZE ERROR stment ] [ NOT ON SIZE ERROR stment ]
[ END-SUBTRACT ]
Additional information available:
num
is a numeric literal or the identifier of an elementary numeric item.
rsult
is the identifier of an elementary numeric item. It is the resultant identifier.
stment
is an imperative statement.
2format GIVING
The SUBTRACT statement subtracts one, or the sum of two or more,
numeric items from one or more items. It stores the result in one or
more items.
Format 2 -
SUBTRACT { num } ... FROM num GIVING { rsult [ ROUNDED ] } ...
[ ON SIZE ERROR stment ] [ NOT ON SIZE ERROR stment ]
[ END-SUBTRACT ]
Additional information available:
num
is a numeric literal or the identifier of an elementary numeric item.
rsult
is the identifier of an elementary numeric item or an elementary numeric edited item. It is the resultant identifier.
stment
is an imperative statement.
3format CORRESPONDING
The SUBTRACT statement subtracts one, or the sum of two or more,
numeric items from one or more items. It stores the result in one or
more items.
Format 3 -
SUBTRACT { CORRESPONDING } grp-1 FROM grp-2 [ ROUNDED ]
{ CORR }
[ ON SIZE ERROR stment ] [ NOT ON SIZE ERROR stment ]
[ END-SUBTRACT ]
Additional information available:
grp
is the identifier of a group item.
stment
is an imperative statement.
SUPPRESS
The SUPPRESS statement causes the Report Writer Control System (RWCS) to inhibit the presentation of a report group. Format - SUPPRESS PRINTING
TERMINATE
The TERMINATE statement causes the Report Writer Control System (RWCS) to
complete the processing of the specified report.
Format -
TERMINATE { report-name } ...
Additional information available:
report-name
names a report defined by a Report Description entry in the Report Section of the Data Division.
UNLOCK
The UNLOCK statement removes record locks from a record or all currently
locked records in the file.
Format -
UNLOCK file-name [ RECORD ]
[ ALL RECORDS ]
Additional information available:
file-name
is the name of a sequential, relative, or indexed file described in the Data Division.
UNSTRING
The UNSTRING statement separates contiguous data in a sending field and
stores it in one or more receiving fields.
Format -
UNSTRING src-string
[ DELIMITED BY [ALL] delim [ OR [ALL] delim ] ... ]
INTO { dest-string [DELIMITER IN delim-dest] [COUNT IN countr] } ...
[ WITH POINTER pointr ]
[ TALLYING IN tally-ctr ]
[ ON OVERFLOW stment ] [ NOT ON OVERFLOW stment ]
[ END-UNSTRING ]
Additional information available:
src-stringdelimdest-stringdelim-destcountrpointrtally-ctr
stment
src-string
is the identifier of an alphanumeric class data item. It cannot be reference modified. Src-string is the sending field.
delim
is a nonumeric literal or the identifier of an alphanumeric data item. It is the delimiter for the UNSTRING operation.
dest-string
is the identifier of an alphanumeric, alphabetic, or numeric DISPLAY data item. It is the receiving field for the data from src-string.
delim-dest
is the identifier of an alphanumeric data item. It is the receiving field for delimiters.
countr
is the identifier of an elementary numeric data item described as an integer. It contains the count of characters moved.
pointr
is the identifier of an elementary numeric data item described as an integer. It points to the current character position in src-string.
tally-ctr
is the identifier of an elementary numeric data item described as an integer. It counts the number of dest-string fields accessed during the UNSTRING operation.
stment
is an imperative statement.
USE
The USE statement specifies Declarative procedures to handle input/output errors and database exception conditions. It can also specify procedures to be executed before the program processes a specific report group. These procedures supplement the standard procedures in the COBOL Run-Time System and VAX RMS.
Additional information available:
1format AFTER EXCEPTION2format BEFORE REPORTING3format DB-EXCEPTION
1format AFTER EXCEPTION
The USE statement specifies Declarative procedures to handle
input/output errors and database exception conditions. It can also
specify procedures to be executed before the program processes a
specific report group.
These procedures supplement the standard procedures in the COBOL
Run-Time System and VAX RMS.
Format 1 -
{ {file-name} ...}
{ INPUT }
USE [GLOBAL] AFTER STANDARD {EXCEPTION }PROCEDURE ON{ OUTPUT }.
{ERROR } { I-O }
{ EXTEND }
Additional information available:
file-name
is the name of a file connector described in a file description entry in a Data Division. It cannot refer to a sort or merge file.
2format BEFORE REPORTING
The USE statement specifies Declarative procedures to handle input/output errors and database exception conditions. It can also specify procedures to be executed before the program processes a specific report group. These procedures supplement the standard procedures in the COBOL Run-Time System and VAX RMS. Format 2 - USE [GLOBAL] BEFORE REPORTING group-data-name .
Additional information available:
group-data-name
is the name of a report group in a report group description entry in a Data Division. It must not appear in more than one USE statement.
3format DB-EXCEPTION
The USE statement specifies Declarative procedures to handle
input/output errors and database exception conditions. It can also
specify procedures to be executed before the program processes a
specific report group.
Format 3 -
USE [GLOBAL] FOR DB-EXCEPTION [ON { {DBM$_exception-condition} ... }].
[ { OTHER }]
Additional information available:
DBM$ exception-condition
is a symbolic constant name beginning with the characters "DBM$_". It identifies a DBMS exception condition.
WRITE
The WRITE statement releases a logical record to an output or input-output file. It can also position lines vertically on a logical page.
Additional information available:
1format sequential2format relative indexed
1format sequential
The WRITE statement releases a logical record to an output or
input-output file. It can also position lines vertically on a logical
page.
Format 1 -
WRITE rec-name [ FROM src-item ] [ ALLOWING NO OTHERS ]
[ { advance-num [ LINE ] } ]
[ { BEFORE } { [ LINES ] } ]
[ { AFTER } ADVANCING { top-name } ]
[ { PAGE } ]
[ { TO VFU-CHANNEL chan-num } ]
[ AT { END-OF-PAGE } stment ]
[ { EOP } ]
[ NOT AT { END-OF-PAGE } stment ]
[ { EOP } ]
[ END-WRITE ]
Additional information available:
rec-namesrc-itemadvance-numtop-namechan-numstment
rec-name
is the name of a logical record described in the Data Division File Section. It cannot be qualified. The logical record cannot be in a sort-merge file description entry.
src-item
is the identifier of the data item that contains the data.
advance-num
is an integer or the identifier of an unsigned data item described as an integer. Its value can be zero.
top-name
is a mnemonic-name equated to "C01" in the SPECIAL-NAMES paragraph of the Environment Division. It represents top-of-page and is equivalent to the PAGE phrase.
chan-num
is an integer or the identifier of an unsigned data item described as an integer. Its value must be in the range from 1 to 16, inclusive. It represents a channel number for devices which use Vertical Form Units (VFU), which provides positioning information.
stment
is an imperative statement.
2format relative indexed
The WRITE statement releases a logical record to an output or
input-output file. It can also position lines vertically on a logical
page.
Format 2 -
WRITE rec-name [ FROM src-item ] [ ALLOWING NO OTHERS ]
[ INVALID KEY stment ] [ NOT INVALID KEY stment ]
[ END-WRITE ]
Additional information available:
rec-name
is the name of a logical record described in the Data Division File Section. It cannot be qualified. The logical record cannot be in a sort-merge file description entry.
src-item
is the identifier of the data item that contains the data.
stment
is an imperative statement.
COPY statement
The COPY statement includes text in a COBOL source program.
Additional information available:
1format text-name2format record-name
1format text-name
The COPY statement includes text in a COBOL source program.
Format 1 -
COPY text-name [ { OF } library-name ]
[ { IN } ]
[ { { ==pseudo-text-1== } { ==pseudo-text-2== } } ]
[REPLACING { { identifier-1 } BY { identifier-2 } } ... ] .
[ { { literal-1 } { literal-2 } } ]
[ { { word-1 } { word-2 } } ]
Additional information available:
text-namelibrary-name1 pseudo-text-1 identifier-1 literal-1 word-12 pseudo-text-2 identifier-2 literal-2 word-2
text-name
is the name of a COBOL library file available during compilation.
library-name
is the name of the VAX Librarian library file that contains text-name.
1 pseudo-text-1 identifier-1 literal-1 word-1
are text-matching arguments that the compiler compares against text-words in the library text.
2 pseudo-text-2 identifier-2 literal-2 word-2
are replacement items that the compiler inserts into the source program.
2format record-name
The COPY statement includes text in a COBOL source program.
Format 2 -
COPY record-name FROM DICTIONARY
[ { { ==pseudo-text-1== } { ==pseudo-text-2== } } ]
[REPLACING { { identifier-1 } BY { identifier-2 } } ... ] .
[ { { literal-1 } { literal-2 } } ]
[ { { word-1 } { word-2 } } ]
Additional information available:
record-name1 pseudo-text-1 identifier-1 literal-1 word-12 pseudo-text-2 identifier-2 literal-2 word-2
record-name
is a partial or complete VAX Common Data Dictionary/Plus (CDD/Plus) pathname. It specifies the CDD/Plus record description to be copied into the source program.
1 pseudo-text-1 identifier-1 literal-1 word-1
are text-matching arguments that the compiler compares against text-words in the library text.
2 pseudo-text-2 identifier-2 literal-2 word-2
are replacement items that the compiler inserts into the source program.
REPLACE statement
The REPLACE statement is used to replace source program text.
Additional information available:
1format pseudo-text-name2format OFF
1format pseudo-text-name
The REPLACE statement is used to replace source program text.
Format 1 -
REPLACE {==pseudo-text-1== BY ==pseudo-text-2==} ...
Additional information available:
pseudo-text-1
is a text-matching argument that the compiler compares against text-words in the source program.
pseudo-text-2
is a replacement item that the compiler inserts into the source program.
2format OFF
The REPLACE OFF statement is used to terminate any text replacement processing currently in effect. Format 2 - REPLACE OFF
Errors
VAX COBOL Run-Time Error Messages
Additional information available:
ANNUITYBOUNDSCALFAICANFAILCHARBOUNDSDATEINTBOUNDS
DAYINTBOUNDSDELINCOPEDELNO_R_SDELUNOFIL
DEVNOTAPLDIVBY_ZEREOFON_ACCERRDURACC
ERRDURDISERRDURPOSERRDURSORERRON_FIL
EXPDBOVERFACTBOUNDSFAIGET_EFFAIGET_VM
FATINTERRFILALRCLOFILALRLOCFILALROPEFILCLOLOCFILNOTFOU
GOTO_ALTINTDATEBOUNDSINTDAYBOUNDSINDEFVALINTDIVZER
INTEXPOVEINTEXPUNDINTRESOPEINVARGINVBLKFAC
INVDECDATINVDECDIGINVLINVALINVRECSIZKEYNOTMAT
LOWERLENZEROLSTHNDLDBLSTHNDUSEMODBOUNDS
NESERRPERNO_SPACENUMVALARGINVOCCDEPOVE
ORGNOTMATPRESVALBOUNDSRANDOMBOUNDSREAINCOPE
REAMP_D_RREARECTOBREASMAMINREAUNOFIL
RECACTPERRECACTUSERECLOCDELRECLOCREA
RECLOCREWRECLOCSTARECLOCWRIREMBOUNDS
REVERSELENZEROREWINCOPEREWNO_R_SREWSMAMIN
REWUNOFILSTAINCOPSTAUNOFILSUBOVELONTIMOVELON
UNDEF_EXPUNEINSCONUNLNO_CURUNLUNOFIL
UPPERLENZEROWRIBEYBOUWRIINCOPEWRINOTASC
WRIRECTOBWRISMAMINWRIUNOFIL
ANNUITYBOUNDS
argument(s) to FUNCTION ANNUITY out of bounds Explanation: One or both of these rules were violated: a. Argument-1 must be greater than or equal to zero. b. Argument-2 must be positive. User Action: If this is not the desired result, modify the source program to ensure a valid argument or avoid the function with an invalid argument.
CALFAI
CALL failed on routine
Explanation: Failure to CALL the specified routine. This
may be due to one of several possible conditions:
a. The routine name is too long (greater than 31
characters).
b. The routine name is too short (for example, all
blanks).
c. The routine name contains invalid characters.
d. The named routine is not in the linked image.
User Action: Either code the routine name to conform to
the syntax rules for proper routine name formation or
relink the image to include the missing routine.
CANFAIL
CANCEL failed on routine
Explanation: Failure to CANCEL the specified routine.
This may be due to a number of problems including:
a. The routine name is too long (greater than 31
characters).
b. The routine name is too short (for example, all
blanks)
c. The routine name contains invalid characters.
d. The named routine is not in the linked image.
User Action: Either code the routine name to conform to
the syntax rules for proper routine name formation or
relink the image to include the missing routine.
CHARBOUNDS
argument to FUNCTION CHAR out of bounds Explanation: Function argument must be greater than zero and less than or equal to the number of positions in the collating sequence. User Action: If this is not the desired result, modify the source program to ensure a valid argument or avoid the function with an invalid argument.
DATEINTBOUNDS
argument to FUNCTION DATE-OF-INTEGER out of bounds Explanation: Function argument must be greater than zero. User Action: If this is not the desired result, modify the source program to ensure a valid argument or avoid the function with an invalid argument.
DAYINTBOUNDS
argument to FUNCTION DAY-OF-INTEGER out of bounds Explanation: Function argument must be greater than zero. User Action: If this is not the desired result, modify the source program to ensure a valid argument or avoid the function with an invalid argument.
DELINCOPE
DELETE on file incompatible with OPEN mode Explanation: The DELETE operation is not compatible with the open mode of the file. The file status variable, if present, has been set to 49. No applicable USE procedure was found. User Action: Examine the mode in which the file is opened (prior to the attempted DELETE operation) and make the open mode consistent with the DELETE operation.
DELNO_R_S
attempting DELETE on file without previous READ or START Explanation: Attempting to perform a DELETE on this file without having previously performed a READ or START operation. The file status variable, if present, has been set to 43. No applicable USE procedure was found. User Action: Your program must execute a READ or START operation (in sequential access mode) immediately before executing the DELETE operation. This must occur for each execution of the DELETE operation.
DELUNOFIL
attempting DELETE on unopened file Explanation: Attempting to perform a DELETE before the file is opened. The file status variable, if present, has been set to 49. No applicable USE procedure was found. User Action: Your program must execute an appropriate OPEN operation before attempting to perform a DELETE operation on the file.
DEVNOTAPL
attempting to OPEN a RELATIVE or INDEXED file on a non-mass storage device Explanation: Attempting to OPEN a RELATIVE or INDEXED file on an storage device that is not a mass storage device. The file status variable, if present, has been set to 37. No applicable USE procedure has been found. User Action: Examine the SELECT clause of the file and alter the file specification to reference a mass storage device.
DIVBY_ZER
attempting to divide by ZERO Explanation: Attempting to divide by ZERO. User Action: If this is not the desired action, restructure the source program to avoid the divide operation if the divisor is zero, or add an ON SIZE ERROR clause to be executed in the case of a zero divisor.
EOFON_ACC
end-of-file detected on ACCEPT from file Explanation: An end-of-file condition was detected in executing an ACCEPT statement. User Action: You typed a CTRL/Z, which caused an end-of-file condition for an ACCEPT statement. If you wish to use CTRL/Z as an end-of-file indicator, you should code the input operations using an ACCEPT AT END statement.
ERRDURACC
error during ACCEPT from file Explanation: An error condition was detected by RMS in executing the ACCEPT operation. The subsequent error message is the RMS error code associated with this error. User Action: You typed an illegal character (such as BREAK key). If you wish to trap such illegal input characters, code the input operation using a COBOL READ statement and declare an appropriate USE procedure to handle the error.
ERRDURDIS
error during DISPLAY on file Explanation: An error condition was detected by RMS in executing the DISPLAY operation. The subsequent error message is the RMS error code associated with this error. User Action: Examine the logical name assignment and/or the type of device to which the DISPLAY statement is attempting to write output information.
ERRDURPOS
error during erasing or positioning in an ACCEPT or DISPLAY Explanation: An error condition was detected by the RTL in executing the erasing or positioning option of the extended ACCEPT or DISPLAY. User Action: Examine the assignment of the logicals SYS$INPUT and SYS$OUTPUT, and/or the type of device with which the statement is interacting.
ERRDURSOR
error during SORT or MERGE Explanation: An error has occurred during a SORT or MERGE operation. The subsequent error message is the associated SORT or MERGE error code. User Action: Examine the logic of the program to determine why an error is occurring during a SORT or MERGE. In particular, if the program contains input procedures for the SORT or MERGE operation, ensure that at least one RELEASE operation is executed in the input procedure. Failure to do so can cause this error condition.
ERRON_FIL
error on file Explanation: An error status has been returned by RMS that is not recognized by the VAX COBOL I/O error handler. The subsequent error message is the associated RMS error code. The file status variable, if present, has been set to 30 (except for a CLOSE operation -- file status = 98). No applicable USE procedure has been found. User Action: Examine the subsequent error message issued by RMS and respond accordingly, or code an applicable USE procedure to handle the I/O error.
EXPDBOVER
expression value in database argument list overflows longword Explanation: The value of an offset or relative position integer expression in a database record selection expression cannot be contained in a longword. User Action: Determine why the value is too large and correct the program to use a value that is representable in a longword.
FACTBOUNDS
argument to FUNCTION FACTORIAL out of bounds Explanation: Function argument must be in the range of 0 through 19. User Action: If this is not the desired result, modify the source program to ensure a valid argument or avoid the function with an invalid argument.
FAIGET_EF
failure to get event flag Explanation: An internal operation associated with execution of the CANCEL operation requires an event flag number. The attempt to allocate the event flag number has failed. User Action: The process associated with your COBOL program has allocated a number of event flags. The execution of the CANCEL operation has requested one more event flag than is available to the process. Deallocate some event flag before executing the COBOL program containing the CANCEL operation.
FAIGET_VM
failure to get virtual memory Explanation: An internal operation associated with the execution of an ACCEPT or DISPLAY statement requires the allocation of dynamic virtual memory. The attempt to allocate this space has failed. User Action: The executable image containing the COBOL ACCEPT or DISPLAY operation is using a large quantity of virtual memory. The execution of the ACCEPT or DISPLAY statement has requested more dynamic memory than is available to the executable image. Your program must use less virtual memory if the COBOL ACCEPT or DISPLAY operation is to work successfully.
FATINTERR
fatal internal error Explanation: An internal consistency check has failed. This represents an internal error in the Run-Time Library and should be reported to Digital Equipment Corporation by software performance report. User Action: Either discuss this error with your local software support specialist or submit a software performance report with supporting documentation, including the system traceback listing.
FILALRCLO
file already closed Explanation: Attempting to CLOSE a file that is already closed. The file status variable, if present, has been set to 42. No applicable USE procedure has been found. User Action: Examine the logic of your program and eliminate the redundant CLOSE operation. Alternatively, you may discover the inadvertent omission of performing an OPEN on this file.
FILALRLOC
file is already locked Explanation: In the file sharing environment, attempting to open a file for which another process has exclusive access. The file status variable, if present, has been set to 91. No applicable USE procedure has been found. User Action: Declare an applicable USE procedure for this file to handle this I/O condition.
FILALROPE
file is already open Explanation: Attempting to open a file that is already open. The file status variable, if present, has been set to 41. No applicable USE procedure has been found. User Action: Examine the logic of the program and eliminate the redundant OPEN operation. Alternatively, you may declare an applicable USE procedure to handle this error.
FILCLOLOC
file is closed with LOCK Explanation: Attempting to open a file that is already closed with LOCK. The file status variable, if present, has been set to 38. No applicable USE procedure has been found. User Action: Examine the logic of the program and eliminate the attempted OPEN operation on the file. Alternatively, you may declare an applicable USE procedure to handle the error.
FILNOTFOU
file not found on OPEN Explanation: The named file was not found during the execution of the OPEN statement. The file status variable, if present, has been set to 35. No applicable USE procedure has been found. User Action: Examine the referenced directory to check for the existence of the named file. Another common source of this error is a mistake in spelling the file specification for the file.
GOTO_ALT
GO TO with no preceding ALTER Explanation: Attempting to perform a GO TO that has no preceding ALTER. User Action: Examine the logic of the program to ensure that the execution of an ALTER statement precedes the execution of the referenced GO TO statement.
INTDATEBOUNDS
argument to FUNCTION INTEGER-OF-DATE out of bounds
Explanation: Function argument must be an integer of the form
YYYYMMDD. One or more of these rules were violated:
a. YYYY must be greater than 1600 and less than or equal to
9999
b. MM must be in the range of 1 through 12.
c. DD must be in the range of 1 through 31 and valid for
the particular month and year combination.
User Action: If this is not the desired result, modify the
source program to ensure a valid argument or avoid the
function with an invalid argument.
INTDAYBOUNDS
argument to FUNCTION INTEGER-OF-DAY out of bounds
Explanation: Function argument must be an integer of the form
YYYYDDD. One or more of these rules were violated:
a. YYYY must be greater than 1600 and less than or equal to
9999
b. DDD must be in the range of 1 through 366 and valid for
the year specified.
User Action: If this is not the desired result, modify the
source program to ensure a valid argument or avoid the
function with an invalid argument.
INDEFVAL
invalid DEFAULT value in an ACCEPT Explanation: The DEFAULT item cannot be larger than the destination field when PROTECTED is specified. User Action: Decrease the length of the DEFAULT item or use the PROTECTED SIZE clause to allow for more input characters. If the DEFAULT item is reference modified, check the value of the identifier in the reference modifier size field.
INTDIVZER
intermediate divide by zero Explanation: Attempting to divide by COBOL Intermediate Temporary that has a value of zero. User Action: Examine the referenced expression in which a division operation occurs and determine why the divisor has a zero value.
INTEXPOVE
intermediate exponent overflow Explanation: A COBOL Intermediate Temporary is created that has an exponent greater than +99. User Action: Examine the referenced line of the source program containing an arithmetic operation and determine what is causing a COBOL Intermediate Temporary to be created with too large an exponent.
INTEXPUND
intermediate exponent underflow Explanation: A COBOL Intermediate Temporary is created that has an exponent less than -99. User Action: Examine the referenced line of the source program containing an arithmetic operation and determine what is causing a COBOL Intermediate Temporary to be created with too small an exponent.
INTRESOPE
intermediate reserved operand Explanation: Encountering a reference to a previously created COBOL Intermediate Temporary whose exponent is greater than +99 or less than -99. User Action: Examine the referenced line of the source program containing an arithmetic operation and determine what is causing a COBOL Intermediate Temporary to be created with too large or too small an exponent in a previously executed statement.
INVARG
invalid argument Explanation: Internal consistency checking has detected an invalid argument being passed to a routine in the COBOL Run-Time Library. This represents an internal error and should be reported to Digital Equipment Corporation. User Action: Submit a software performance report with the appropriate supporting documentation, including the system traceback listing.
INVBLKFAC
attempting OPEN of a file with a specified blocking factor that differs from the blocking factor of the file Explanation: There is a mismatch between the specified blocking factor of the file as indicated in the program and the blocking factor that existed when the file was created. This mismatch is encountered on an OPEN operation. The file status variable, if present, has been set to 39. No applicable USE procedure has been found. User Action: Examine the program and change the blocking factor specification to match the blocking factor specified when the file was created.
INVDECDAT
invalid decimal data
Explanation: Invalid decimal data has been encountered in
the course of converting a numeric DISPLAY data item into a
packed number. One or more of the following problems may
exist:
a. The length of the source string is outside of the
range 0 through 31.
b. The length of the destination packed decimal string
is outside of the range 0 through 31.
c. The source string contains an invalid byte. An
invalid byte is:
- Any character other than ASCII "0" through "9"
in a digit byte or an ASCII "+" or a space or a
hyphen in the sign byte of a leading separate
numeric data item.
- Any character other than ASCII "0" through "9"
in any high-order byte (that is, any byte
except the least significant byte) in a
trailing numeric data item.
d. In the case of trailing numeric input, the
translation of the least significant digit produces
an invalid decimal digit or sign nibble.
User Action: This error usually occurs when space
characters are used in lieu of insignificant, leading, zero
digit positions for numeric fields. These fields are
commonly found within records on a file. Examine such
numeric fields on the file and replace all insignificant
leading spaces in these fields with numeric zero characters.
Alternatively, before referencing these fields in arithmetic
operations, use the INSPECT statement to change
insignificant space characters to zeros in these fields.
Another alternative is the NUMERIC class test to determine
if numeric data items contain numeric characters only. This
class test should be executed before these numeric data
items are referenced in arithmetic operations.
INVDECDIG
invalid decimal digit Explanation: An invalid decimal digit has been encountered in the course of converting a packed decimal number. User Action: Examine the logic of the program to determine why illegal data is being discovered in converting the packed decimal number.
INVLINVAL
invalid LINAGE value on file Explanation: An invalid value has been encountered in one of the data names associated with the LINAGE clause for this file. User Action: Examine the logic of the program and determine why a data name value associated with the LINAGE clause does not fall within the range of values as prescribed in the COBOL rules for the LINAGE clause.
INVRECSIZ
attempting REWRITE of a record that is a different size from the size of the record in the file Explanation: There is a mismatch between the size of the record in the program to be rewritten and the record size that existed when the file was created. The file status variable, if present, has been set to 44. No applicable USE procedure has been found. User Action: Examine the program and change the size of the record being rewritten to match the record size specified when the file was created.
KEYNOTMAT
attempting to open indexed file whose actual keys do not match those declared Explanation: An OPEN was attempted on an indexed file whose keys (as described in the program) do not have the same data-type, size, and position within the record as when the file was created. The file status data item, if specified, has been set to 39. No applicable USE procedure has been found. User Action: Run SYS$SYSTEM:DSP to determine the actual keys within the file and change the program to describe the keys correctly.
LOWERLENZERO
FUNCTION LOWER-CASE argument length cannot be zero. Explanation: A group consisting solely of a variable-length table was used as an argument to LOWER-CASE and its current lowbound was 0. User Action: If this is not the desired result, modify the source program to ensure a valid argument or avoid the function with an invalid argument.
LSTHNDLDB
lost handler for database exception - environment corrupted Explanation: The default COBOL handler COB$$HANDLER was deleted, or a new handler was established that did not call COB$$HANDLER when a program was attempting to execute a GLOBAL USE procedure for a DB-EXCEPTION. User Action: Do not establish a new handler or include in the new handler a call to COB$$HANDLER for unrecognized conditions.
LSTHNDUSE
lost handler for a USE procedure - environment corrupted Explanation: The default COBOL handler COB$$HANDLER was deleted, or a new handler was established that did not call COB$$HANDLER when a program was attempting to execute a GLOBAL USE procedure for an I/O statement. User Action: Do not establish a new handler or include in the new handler a call to COB$$HANDLER for unrecognized conditions.
MODBOUNDS
argument to FUNCTION MOD out of bounds. Explanation: The second argument to FUNCTION MOD cannot be zero. User Action: If this is not the desired result, modify the source program to ensure a valid argument or avoid the function with an invalid argument.
NESERRPER
nesting error for PERFORM Explanation: A logic error has been encountered in the order in which the nesting of PERFORM ranges are exited. User Action: PERFORM ranges must be exited in reverse order from which these PERFORM ranges are activated. Examine the logic of the PERFORM range nesting to discover why these PERFORM ranges are not exited in reverse order of their activation.
NO_SPACE
no file space on device for file Explanation: During the course of an OPEN, a failure to find additional space on a particular device has been detected. The file status variable, if present, has been set to 95. No applicable USE procedure has been found. User Action: Most likely, you have many outdated and/or transient files on the device. Examine the directories on the particular device and free-up sufficient space by purging or deleting unused files, then resubmit the program for execution.
NUMVALARGINV
argument to FUNCTION NUMVAL or NUMVAL-C is invalid. Explanation: The argument does not conform to an allowable format (see Reference Manual for format). User Action: If this is not the desired result, modify the source program to ensure a valid argument or avoid the function with an invalid argument.
OCCDEPOVE
OCCURS DEPENDING value overflows longword Explanation: The value of the data name associated with an OCCURS DEPENDING phrase cannot be contained in a longword. User Action: Examine the referenced line in the source program containing an implicit reference to the data name associated with an OCCURS DEPENDING phrase to determine why this value has overflowed a longword value.
ORGNOTMAT
attempting to open file whose actual organization does not match that declared Explanation: There is a mismatch between the organization of the file as declared in the program and the organization of the file as it was created. This mismatch is encountered on the OPEN operation. The file status variable, if present, has been set to 39. No applicable USE procedure has been found. User Action: Examine the program and change the declaration of the file's organization to match the file organization attributes (sequential, relative, or indexed) when the file was created.
PRESVALBOUNDS
argument to FUNCTION PRESENT-VALUE out of bounds. Explanation: The first argument to FUNCTION PRESENT-VALUE must be greater than -1. User Action: If this is not the desired result, modify the source program to ensure a valid argument or avoid the function with an invalid argument.
RANDOMBOUNDS
argument to FUNCTION RANDOM out of bounds. Explanation: The argument to FUNCTION RANDOM must be greater than or equal to zero. User Action: If this is not the desired result, modify the source program to ensure a valid argument or avoid the function with an invalid argument.
REAINCOPE
READ on file incompatible with OPEN mode Explanation: The file was opened in a mode that is incompatible with a READ operation (that is, an open mode for which READ operations are disallowed). This error usually represents bad logic in the user program. The file status variable, if present, has been set to 47. No applicable USE procedure has been found. User Action: Examine the logic of the program to determine why a READ operation that is incompatible with the open mode is being attempted. Change the open mode to allow the READ operation or eliminate the READ operation.
REAMP_D_R
successful READ must precede DELETE or REWRITE in sequential access mode Explanation: Attempting to perform a DELETE or REWRITE on this file without having previously performed a READ operation. The file status variable, if present, has been set to 43. No applicable USE procedure was found. User Action: Your program must execute a READ operation (in sequential access mode) immediately before executing a DELETE or REWRITE operation. This must occur for each execution of the DELETE operation.
REARECTOB
attempting READ with relative record number too big for relative key data item Explanation: Attempting to perform a sequential READ or READ NEXT on a relative record where the number of digits in the relative key exceeds the number of digits in the relative key data item. The file status variable, if present, has been set to 14. No applicable USE procedure has been found. User Action: Examine the length of the relative key data item and increase its size to allow a successful READ operation of the record.
REASMAMIN
attempting READ of variable length smaller than minimum allowed from file Explanation: Attempting to READ a record that is smaller than the minimum length record declared in the program for this file. The file status variable, if present, has been set to 04. No applicable USE procedure has been found. User Action: Examine the length of the record on the file being read and then change the minimum record length declared in the program for this file to allow a successful READ operation on the record.
REAUNOFIL
attempting READ on unopened file Explanation: Attempting a READ operation on a file that is not open at this time. This error usually represents a logic error in the user program. The file status variable, if present, has been set to 47. No applicable USE procedure has been found. User Action: Examine the logic of the program to determine why a READ operation is attempted on an unopened file. Change the logic of the program by opening the file or by eliminating the READ operation.
RECACTPER
recursive activation of PERFORM Explanation: Attempting to PERFORM a paragraph or section that is already activated due to a previous PERFORM statement. This constitutes an attempted recursive activation of the paragraph or section and is illegal in the COBOL language. The program must execute an EXIT statement from the paragraph or section before this paragraph or section can be the subject of a subsequent PERFORM. User Action: Examine the logic of the program to determine why an EXIT from the paragraph or section is not being executed before the subsequent PERFORM of the same paragraph or section.
RECACTUSE
recursive activation of USE procedure Explanation: Attempting to activate (enter) a USE procedure while that USE procedure is already active. USE procedures are activated (or entered) in response to an error or condition associated with an I/O operation. Within that USE procedure, another I/O operation has been attempted that caused this USE procedure to be entered recursively before exiting from the initial entry to the USE procedure. This recursive activation of the USE procedure is illegal in the COBOL language. User Action: Examine the logic of the program to ascertain the condition causing the recursive activation of the USE procedure and eliminate that condition.
RECLOCDEL
record on file is already locked (DELETE attempt) Explanation: In the file sharing environment, attempting to DELETE a record that is already locked by another, contending process. The file status variable, if present, has been set to 92. No applicable USE procedure has been found. User Action: Code an applicable USE procedure in which the problem of record contention may be handled properly by your own program. Using USE procedures is important in the file sharing environment.
RECLOCREA
record on file is already locked (READ attempt) Explanation: In the file sharing environment, attempting to READ a record that is already locked by another, contending process. The file status variable, if present, has been set to 92. No applicable USE procedure has been found. User Action: Code an applicable USE procedure in which the problem of record contention may be handled properly by your own program. Using USE procedures is important in the file sharing environment.
RECLOCREW
record on file is already locked (REWRITE attempt) Explanation: In the file sharing environment, attempting to REWRITE a record that is already locked by another, contending process. The file status variable, if present, has been set to 92. No applicable USE procedure has been found. User Action: Code an applicable USE procedure in which the problem of record contention may be handled properly by your own program. Using USE procedures is important in the file sharing environment.
RECLOCSTA
record on file is already locked (START attempt) Explanation: In the file sharing environment, attempting to perform a START operation on a record already locked by another, contending process. The file status variable, if present, has been set to 92. No applicable USE procedure has been found. User Action: Code an applicable USE procedure in which the problem of record contention may be handled properly by your own program. Using USE procedures is important in the file sharing environment.
RECLOCWRI
record on file is already locked (WRITE attempt) Explanation: In the file sharing environment, attempting to WRITE a record that is already locked by another, contending process. The file status variable, if present, has been set to 92. No applicable USE procedure has been found. User Action: Code an applicable USE procedure in which the problem of record contention may be handled properly by your own program. Using USE procedures is important in the file sharing environment.
REMBOUNDS
argument to FUNCTION REM out of bounds. Explanation: The 2nd argument to FUNCTION REM cannot be zero. User Action: If this is not the desired result, modify the source program to ensure a valid argument or avoid the function with an invalid argument.
REVERSELENZERO
FUNCTION REVERSE argument length cannot be zero. Explanation: A group consisting solely of a variable-length table was used as an argument to REVERSE and its current lowbound was 0. User Action: If this is not the desired result, modify the source program to ensure a valid argument or avoid the function with an invalid argument.
REWINCOPE
REWRITE on file incompatible with OPEN mode Explanation: The REWRITE operation is not compatible with the open mode of the file. The file status variable, if present, has been set to 49. No applicable USE procedure has been found. User Action: Examine the mode in which the file was opened prior to the attempted REWRITE operation and change the open mode to allow the successful completion of the REWRITE operation. Alternatively, change the logic of the program to bypass the attempted REWRITE operation.
REWNO_R_S
attempting REWRITE on file with no previous READ or START Explanation: Attempting to perform a REWRITE on this file without having previously performed a READ or START operation. The file status variable, if present, has been set to 93. No applicable USE procedure has been found. User Action: Your program must execute a READ or START operation (that is, sequential access mode) immediately before executing the REWRITE operation. This must occur for each execution of the REWRITE operation.
REWSMAMIN
attempting REWRITE of variable length smaller than minimum allowed on file Explanation: Attempting to REWRITE a record that is smaller than the minimum record length declared in the program for this file. The file status variable, if present, has been set to 44. No applicable USE procedure has been found. User Action: Examine the length of the record on the file being rewritten and then change the minimum record length attribute in the program for the file to allow the successful REWRITE operation for this record.
REWUNOFIL
attempting REWRITE on unopened file Explanation: Attempting to perform a REWRITE operation on this file before the file is opened. The file status variable, if present, has been set to 49. No applicable USE procedure has been found. User Action: Examine the logic of the program to determine why a REWRITE operation is attempted before the file is opened. Change the logic of the program to open the file or, alternatively, eliminate the REWRITE operation.
STAINCOP
START on file incompatible with OPEN mode Explanation: The START operation is not compatible with the current open mode of the file. The file status variable, if present, has been set to 47. No applicable USE procedure has been found. User Action: Examine the mode in which the file was opened prior to the attempted START operation and change the open mode to allow the successful completion of the start operation.
STAUNOFIL
attempting START on unopened file Explanation: Attempting to perform a START operation on this file before the file is opened. The file status variable, if present, has been set to 47. No applicable USE procedure has been found. User Action: Examine the logic of the program to determine why a START operation is attempted before the file is opened. Change the logic of the program to open the file or, alternatively, eliminate the START operation before executing the OPEN.
SUBOVELON
subscript or reference modifier overflows longword Explanation: The evaluation of a subscript or reference modifier has produced a value that cannot be contained in a longword quantity. User Action: Examine the referenced line of the source program containing the subscripting operation or reference modifier to determine why the value produced overflows a longword quantity.
TIMOVELON
TIMES value overflows longword Explanation: The evaluation of the TIMES operand associated with the PERFORM statement has produced a value that cannot be contained in a longword quantity. User Action: Examine the referenced line of the source program to determine why the evaluation of the TIMES operand produces a value that overflows a longword quantity.
UNDEF_EXP
attempting undefined exponentiation -- negative base raised to fractional exponent Explanation: Attempting an illegal exponentiation operation in COBOL in which a negative base is taken to a fractional power. User Action: Examine the logic of the source program to determine why this illegal operation is being attempted.
UNEINSCON
INSPECT CONVERTING lengths unequal Explanation: The lengths of the search and replacement strings are not equal in the INSPECT CONVERTING statement. User Action: Examine the referenced INSPECT CONVERTING statement to determine why the lengths of the search and replacement strings are not equal. These lengths must be the same according to the rules of the COBOL language.
UNLNO_CUR
attempting UNLOCK on file with no current record Explanation: Attempting to perform an UNLOCK RECORD statement without having established a current record. The file status variable, if present, is set to 93. No applicable USE procedure has been found. User Action: Execute a record operation that locks a record, and therefore establishes a current record before executing an UNLOCK RECORD statement.
UNLUNOFIL
attempting UNLOCK on unopened file Explanation: Attempting an UNLOCK operation on a file that is not open. This error usually represents a logic error in the program. The file status data item, if present, has been set to 94. No applicable USE procedure has been found. User Action: Determine why an UNLOCK operation is attempted on an unopened file. Change the program to open the file or eliminate the UNLOCK operation.
UPPERLENZERO
FUNCTION UPPER-CASE argument length cannot be zero. Explanation: A group consisting solely of a variable-length table was used as an argument to UPPER-CASE and its current lowbound was 0. User Action: If this is not the desired result, modify the source program to ensure a valid argument or avoid the function with an invalid argument.
WRIBEYBOU
attempting WRITE beyond boundaries of file Explanation: Attempting to WRITE a record at a logical position that is outside of the bounds of this file. If a sequential WRITE has been attempted on a sequentially organized file, the file status variable has been set to 34 and no applicable USE procedure was found. For a relative or indexed file, the file status variable has been set to 24 and no applicable USE procedure was found. User Action: This error usually occurs when your program attempts to write records to a volume that does not have sufficient free space to contain the file. Delete or purge as many files as possible to free-up sufficient space to contain the file being written.
WRIINCOPE
WRITE on file incompatible with OPEN mode Explanation: The WRITE operation is not compatible with the current open mode of the file. The file status variable, if present, has been set to 48. No applicable USE procedure has been found. User Action: Examine the mode in which the file was opened prior to the attempted WRITE operation. Alternatively, change the logic of the program to bypass the attempted WRITE operation.
WRINOTASC
attempting to WRITE non-ascending ISAM key on file Explanation: Attempting to perform a sequential WRITE operation to an indexed file in which the primary key is not in ascending sequence value. The file status variable, if present, has been set to 21. No applicable exception label or USE procedure was found. User Action: Examine the logic of the program to determine why the primary key values are not written in ascending key value.
WRIRECTOB
attempting WRITE with a relative record number too big for relative key data item Explanation: Attempting to perform a sequential WRITE to a relative file where the number of digits in the relative key exceeds the number of digits in the relative key data item. The file status variable, if present, has been set to 24. No applicable USE procedure has been found. User Action: Examine the length of the relative key data item and increase its size to allow a successful WRITE operation of this record
WRISMAMIN
attempting WRITE of variable length smaller than minimum allowed on file Explanation: Attempting to WRITE a record that is smaller than the minimum length record declared in the program for this file. The file status variable, if present, has been set to 94. No applicable USE procedure has been found. User Action: Examine the logic of the program to determine why it is shorter than the minimum length declared for this file in the program.
WRIUNOFIL
attempting to WRITE to an unopened file Explanation: Attempting to perform a WRITE operation before the file is opened. The file status variable, if present, has been set to 48. No applicable USE procedure was found. User Action: Restructure the source program to OPEN the file before the WRITE operation.
Parameters
{file-spec [/file-qualifier]}...
Specifies one or more COBOL source programs to be compiled. If a
file specification does not contain a file type, the compiler
uses the default file type of COB.
You can specify more than one input file but you must use
separators. Each file is compiled separately when you separate
the file specifications with a comma. Files separated by plus
signs are concatenated in a single compilation.
No wild card characters are allowed in the file specification.
Qualifiers
Additional information available:
/ANALYSIS_DATA/ANSI_FORMAT/AUDIT/CHECK/CONDITIONALS
/COPY_LIST/CROSS_REFERENCE/DEBUG/DEPENDENCY_DATA
/DESIGN/DIAGNOSTICS/FIPS/FLAGGER/INSTRUCTION_SET
/LIST/MACHINE_CODE/MAP/OBJECT/SEQUENCE_CHECK
/STANDARD/TRUNCATE/WARNINGS
/ANALYSIS_DATA
/ANALYSIS_DATA[=file-spec] /NOANALYSIS_DATA (D) If you have the VAX Source Code Analyzer (SCA) installed on your system, you can use the /ANALYSIS_DATA qualifier to generate an output file of source information. SCA uses the ANA file to display information about program symbols and source files. The source information file generated by the /ANALYSIS_DATA qualifier has a default file type of ANA.
/ANSI_FORMAT
/ANSI_FORMAT /NOANSI_FORMAT (D) Indicates that the source program is in conventional ANSI format. The compiler then expects 80-character card image records with optional sequence numbers in character positions 1 through 6, indicators in position 7, Area A beginning in position 8, Area B beginning in position 12, and the identification area in positions 73 through 80. The default is /NOANSI_FORMAT; that is, the compiler assumes that the source program is in DIGITAL's terminal format, where Area A begins in position 1, Area B begins in position 5, and the source program records do not have line numbers.
/AUDIT
/AUDIT[=("string",...)]
/NOAUDIT (D)
Controls whether user-supplied text is included in a Common
Data Dictionary/Plus (CDD/Plus) history list entry if a
compilation accesses the dictionary.
You can specify from 1 to 64 strings with the /AUDIT qualifier.
If you specify more than one string, separate them with commas
and enclose the list in parentheses. If you specify /AUDIT
without a string, a standard history list entry is created with
no additional text.
/CHECK
/CHECK[=(option[,...])]
/NOCHECK (D)
Specifies conditions to be checked at execution time. Controls
whether the system checks PERFORM statements, indexes,
subscripts, reference modifications, and the depending-item for
specific run-time errors.
You can select one or more of the following options:
[NO]PERFORM Verifies that PERFORM statement rules are met.
The default is NOPERFORM.
[NO]BOUNDS Verifies the range of subscripts and reference
modifiers. The default is NOBOUNDS.
ALL Same as /CHECK without any options.
NONE Same as /NOCHECK. Default if /CHECK is not used.
/CONDITIONALS
/CONDITIONALS[=(character,...)] /NOCONDITIONALS (D) Indicates which conditional compilation lines are to be compiled. The characters A-Z specify the conditional compilation lines to be complied. If no characters are specified, all conditional compilation lines are compiled.
/COPY_LIST
/COPY_LIST /NOCOPY_LIST (D) Controls whether source statements included by COPY are printed in the listing file. The /COPY_LIST qualifier has no effect unless the /LIST qualifier is also specified. If /NOCOPY_LIST is specified, only the COPY statement appears in the listing.
/CROSS_REFERENCE
/CROSS_REFERENCE[=(option[,...])]
/NOCROSS_REFERENCE (D)
Controls whether the compiler creates a cross-reference listing
as part of the listing file.
You can select one or both of the following options:
ALPHABETICAL The compiler sorts user-defined names in
alphabetical order and lists them with the source
program line numbers.
DECLARED Produces a listing of user-defined names in order
of declaration.
If you specify /CROSS_REFERENCE without specifying an option, an
alphabetical listing of user-defined names is produced.
/DEBUG
/DEBUG[=(option[,...])]
/NODEBUG
Controls whether the compiler produces traceback and local symbol
table information for the VAX Symbolic Debugger.
You can select one or more of the following options:
[NO]SYMBOLS Produces a local symbol table that allows you to
refer to data items by data-name. NOSYMBOLS is
the default.
[NO]TRACEBACK Produces traceback information only to provide
the debugger with compiler-generated line
numbers and names. TRACEBACK is the default.
ALL Provides traceback and local symbol table
information. Equivalent to /DEBUG without any
options or /DEBUG=(TRACEBACK,SYMBOLS).
NONE Omits traceback and local symbol table
information. /DEBUG=NONE is equivalent to
/NODEBUG.
If you specify a qualifier parameter, the default options do not
change unless individually modified.
/DEPENDENCY_DATA
/DEPENDENCY_DATA
/NODEPENDENCY_DATA (D)
If you have the VAX Common Data Dictionary/Plus (CDD/Plus)
installed on your system, you can use the /DEPENDENCY_DATA
qualifier to store CDD/Plus relationship information in the
dictionary. The information generated will correlate the VAX
COBOL program with:
a. The object file created by the compilation
b. A CDD/Plus record specified in the COPY FROM DICTIONARY
statement
c. A CDD/Plus entity explicitly referenced in the RECORD
DEPENDENCY statement
/DESIGN
/DESIGN[=(option[,...])]
/NODESIGN
Controls whether the compiler processes the input file as a detailed
design.
You can select one or both of the following options:
[NO]COMMENTS
Determines whether the compiler searches inside
comments for program design information, according to
the rules for associating comments with declarations,
described in the Guide to Vax Language-Sensitive
Editor (LSE) V3.0 and VAX Source Code Analyzer (SCA)
V2.0. The compiler reports any errors detected at
compile time.
[NO]PLACEHOLDERS
Determines whether the compiler accepts Vax
Language-Sensitive Editor (LSE) placeholders (in well
defined contexts) as valid program syntax.
Specifying /DESIGN without an explicit option is equivalent to specifying
/DESIGN=(COMMENTS,PLACEHOLDERS).
/DIAGNOSTICS
/DIAGNOSTICS[=file-spec] /NODIAGNOSTICS (D) Creates a diagnostic file containing compiler messages and diagnostic information. The diagnostic file is reserved for use by DIGITAL. The VAX Language-Sensitive Editor uses the diagnostic file to display diagnostic messages and to position the cursor on the line and column where a source error exists. The default file type for a diagnostic file is .DIA.
/FIPS
/FIPS=74 /NOFIPS (D) /FIPS=74 supports the interpretation of file status and the intermediate arithmetic data item as specified in the Federal Information Processing Standards Publication 21-1 (FIPS-PUB 21-1) issued by the U.S. National Bureau of Standards. /FIPS=74 will cause a file status of "10" to be returned when reporting at end conditions and cause the compiler to use a 19-digit temporary and round on the 20th digit for add and subtract operations. /FIPS=74 causes the compiler to use the algebraic value of items with P in their picture character strings in all operations. The default, /NOFIPS, ensures version to version compatibility for COBOL.
/FLAGGER
/FLAGGER[(=option,...)] /NOFLAGGER (D) Allows the specification of a level of FIPS syntax, beyond which, informational diagnostics will be generated, as specified in the Federal Information Processing Standards Publication 21-1 (FIPS-PUB 21-1) issued by the U.S. National Bureau of Standards. You cannot specify the /FLAGGER qualifier with the /STANDARD=V3 qualifier. You can select one or more of the following options: HIGH_FIPS INTERMEDIATE_FIPS MINIMUM_FIPS OBSOLETE OPTIONAL_FIPS REPORT_WRITER SEGMENTATION SEGMENTATION_1
/INSTRUCTION_SET
/INSTRUCTION_SET[=option] Provides the users with a switch for optimizing code using different portions of the VAX instruction set. You can only choose one option for this qualifier; multiple options are not allowed. You can select one of the following options: /INSTRUCTION_SET=DECIMAL_STRING instructs the compiler to optimize the code for VAX processors that include the decimal string subset instructions. /INSTRUCTION_SET=NODECIMAL_STRING instructs the compiler to optimize the code for VAX processors that do not include the decimal string subset instructions. /INSTRUCTION_SET=GENERIC instructs the compiler to optimize the code to run reasonably well on all VAX processors. You do not have to compile all modules within an application with the same /INSTRUCTION_SET qualifier option. An object module compiled with this qualifier option will execute on any VAX processor, regardless of the option chosen. This qualifier only affects performance. The default is /INSTRUCTION_SET=DECIMAL_STRING.
/LIST
/LIST[=file-spec] /NOLIST Controls whether the compiler produces an output listing file. If you issue the COBOL command from the interactive mode, the compiler does not create a listing file; the default is /NOLIST. If you issue the COBOL command from batch mode, the default is /LIST: the compiler gives a listing file the same file name as the input source file. The output file type defaults to LIS. The listing file always contains a listing of the source program. Other portions of the listing file are optionally produced under the control of the /MACHINE_CODE, /MAP, and /CROSS_REFERENCE qualifiers.
/MACHINE_CODE
/MACHINE_CODE /NOMACHINE_CODE (D) Controls whether the listing file contains a list of compiler generated machine code.
/MAP
/MAP[=option]
/NOMAP (D)
Controls whether the compiler produces the following maps in the
listing file:
o data-names, procedure-names, and file-names
o external references
o subschema objects
You can control the format of the data-name, procedure-name, and
file-name maps in the listing file by specifying one or both of
the following options:
ALPHABETICAL Produces an alphabetical list of map items
DECLARED Produces a list of map items in the order
they were declared
If you specify /MAP without specifying an option, an alphabetical
list of map items is produced.
/OBJECT
/OBJECT[=file-spec] (D) /NOOBJECT Controls whether the compiler creates an output object module. By default, the compiler produces an object module with the same file name as the source file and a file type of OBJ.
/SEQUENCE_CHECK
/SEQUENCE_CHECK /NOSEQUENCE_CHECK (D) Controls whether the compiler produces a sequence check on the line numbers in columns 1 through 6 of the source program.
/STANDARD
/STANDARD[(=option,...)]
/NOSTANDARD (D)
Controls whether the compiler prints informational level diagnostics
associated with specific language features.
You can select one or more of the following options:
85 Produces code according to the 1985 ANSI standard
for certain constructs. /STANDARD=85 is the default.
V3 Produces code in the manner of version 3.4 of
VAX COBOL, and issues informational diagnostics
for language constructs that would cause different
run-time results if /STANDARD=85 had been specified
[NO]SYNTAX Produces/does not produce informational
diagnostics on language features that are DIGITAL
extensions. NOSYNTAX is the default.
[NO]PDP11 Produces/does not produce informational
diagnostics on language features that are not
supported by the COBOL-81 compiler.
/TRUNCATE
/TRUNCATE /NOTRUNCATE (D) Controls how the compiler stores values in COMPUTATIONAL receiving items if high-order truncation is necessary. If you specify /NOTRUNCATE, the compiler truncates values according to the VAX hardware storage unit (word, longword, or quadword) allocated to the receiving item. If you specify /TRUNCATE, the compiler truncates values according to the number of decimal digits specified by the PICTURE size. Specifying /TRUNCATE increases program execution time. The /INSTRUCTION_SET qualifier specifying the value NODECIMAL should not be used with the /TRUNC qualifer, since this situation could generate unpredictable results. The compiler will automatically set this qualifer to /NOTRUNC when the /INSTRUCTION_SET=NODECIMAL qualifier is present.
/WARNINGS
/WARNINGS[=(option[,...])]
/NOWARNINGS
Controls whether the compiler prints warning or informational
diagnostics as well as error and severe error diagnostic
messages.
You can select one or more of the following options:
[NO]STANDARD Produces/does not produce informational
diagnostics on language features that are DIGITAL
extensions. NOSTANDARD is the default.
[NO]INFORMATION Produces/does not produce informational
diagnostics. NOINFORMATION is the default.
[NO]OTHER Produces/does not produce warning diagnostics.
OTHER is the default.
ALL Provides the diagnostics produced by STANDARD,
INFORMATION, and OTHER. /WARNINGS=ALL is the
equivalent of /WARNINGS.
NONE Omits the listing of all diagnostics.
/WARNINGS=NONE is the equivalent of /NOWARNINGS.
If you specify an option, defaults for other options do not
change (unless individually modified).