The Environment Division specifies a standard method of expressing those
aspects of a data processing problem that are dependent upon the physical
characteristics of a specific computer. This division allows specification of
the configuration of the compiling computer and the object computer. In
addition, information relative to input-output control, special hardware
characteristics and control techniques may be given.
The Environment Division is
optional in a COBOL source element.
General Format
ENVIRONMENT DIVISION.
[configuration-section]
[input-output-section]
Syntax Rules
-
If the program includes an
Environment Division, the Environment Division header is optional only if it is
the first division in the program.
The Configuration Section is located in the Environment Division
. The Configuration Section specifies aspects of the data processing
system that are dependent on the specific system as well as special control
techniques and a means of associating a local name with an external resource.
This section is divided into paragraphs: the
Source-Computer
paragraph, which describes the computer configuration on which the source
element is compiled; the Object-Computer paragraph, which
describes the computer configuration on which the runtime module produced by
the compiler is to be run; the
Special-Names
paragraph, which provides a means for specifying the
currency sign, choosing the decimal point, specifying symbolic-characters,
relating implementor-names to user-specified mnemonic-names, relating
alphabet-names to character sets or collating sequences, and relating
class-names to sets of characters; and the
Repository
paragraph, which provides a means for associating a local name with an external
resource and specifying which intrinsic function names become reserved words
for this source unit.
The Configuration Section is
optional
.
General Format
Syntax Rules
-
The CONFIGURATION SECTION
header is optional only if it is the first statement in the program.
-
The Configuration Section
must not be stated in a program that is contained within another program.
-
The Configuration Section
must not be stated in a method definition.
-
The
Source-Computer,
Object-Computer and Repository paragraphs must not be stated in a
factory definition or an object definition.
General Rules
-
The entries explicitly or
implicitly stated in the Configuration Section of a source unit that contains
other source units apply to each directly or indirectly contained source unit.
Function
The Source-Computer paragraph identifies
the computer on which the compilation unit is to be compiled.
General Format
General Rules
- The source-computer-name is documentary only.
-
The WITH DEBUGGING MODE clause is used to enable debugging
code, in accordance with the Standard ANSI COBOL Debug Module. (See the section
Environment Division in COBOL Debug in the chapter Debug Module
in your Language Reference - Additional Topics.)
-
All clauses of the
Source-Computer
paragraph apply to the source unit in which they are explicitly or implicitly
specified and to any source unit contained within that source unit.
Function
The Object-Computer paragraph provides a
means of describing the computer on which the runtime module created by the
compiler is to be executed.
It is optional.
The MEMORY SIZE clause and
SEGMENT-LIMIT clause are classed as an obsolete elements in the ANSI'85
standard and are scheduled to be deleted from the next full revision of the
ANSI Standard.
All dialects within this
COBOL implementation support the MEMORY SIZE clause and SEGMENT-LIMIT clause
for documentary purposes only. The FLAGSTD Compiler directive can be used to
detect occurrences of this syntax.
Although they are part of the
standard COBOL definition, the MEMORY SIZE clause and SEGMENT-LIMIT clause are
explicitly excluded from the X/Open COBOL language definitions and should not
be used in a conforming X/Open COBOL source program.
General Format
Syntax Rules
- Object-computer-name must be one COBOL word defined by the user.
-
The
Object-Computer
paragraph can consist of only the OBJECT-COMPUTER header.
General Rules
- The computer-name provides a means for identifying equipment
configuration, in which case the computer-name and its implied configurations
are specified by the user. The configuration definition contains specific
information concerning the memory size. The computer-name and the MEMORY SIZE
clause are documentary only.
-
If the PROGRAM COLLATING SEQUENCE clause is not specified, the NATIVE collating
sequence is used. The appendix Character Sets and Collating Sequences
lists both the full ASCII and EBCDIC collating sequences. Either can be chosen
as the NATIVE collating-sequence by use of the NATIVE Compiler directive.
- If the PROGRAM COLLATING SEQUENCE clause is specified, the program
collating sequence is the collating sequence associated with the alphabet-name
specified in that clause.
- The program collating sequence established in the
Object-Computer
paragraph is used to determine the truth value of any nonnumeric comparisons:
- explicitly specified in relation conditions (see the section
Relation Condition later in this chapter).
- explicitly specified in condition-name conditions; see the
section Condition-Name Condition (Conditional Variable) later in this
chapter.
- The PROGRAM COLLATING SEQUENCE clause is also applied to any
nonnumeric merge or sort keys unless the COLLATING SEQUENCE phrase of the
respective SORT or MERGE statement is specified.
- The PROGRAM COLLATING SEQUENCE clause has no effect on the ordering
of indexed files.
- The PROGRAM COLLATING SEQUENCE clause applies only to the source
element in which it is specified
and source elements
contained within it
- The SEGMENT-LIMIT clause is documentary only. (See the chapter
Segmentation in your Language Reference - Additional Topics.)
Function
The Special-Names paragraph provides a
means for specifying the currency sign, choosing the decimal point,
specifying
symbolic-characters,
relating implementor-names to user-specified mnemonic-names, relating
alphabet-names to character sets or collating sequences, and relating
class-names to sets of characters.
You can select one of
several pre-defined parameter passing conventions. Enhancements to the CALL
statement and the PROCEDURE DIVISION header allow these parameter passing
conventions to be used in inter-program communication.
Examples:
- An example of using the CRT status key fields is provided in the
Examples chapter in your Additional Topics.
General Format
Directives
-
In addition to Compiler directives which provide flagging and modify the
reserved word list, the following directives may impact either the syntax or
semantics described in this section.
- ALPHASTART - determines whether valid numeric literals used in
the ALPHABET clause can begin with 0 or with 1.
- CHARSET - impacts which alphabet is considered the native
character set. This directive is ignored in some environments.
- NATIVE - impacts which alphabet is considered the native
character set.
- SYMBSTART - determines whether valid numeric literals used in the
SYMBOLIC CHARACTERS clause can begin with 0 or with 1.
Syntax Rules
-
The clauses in the
Special-Names
paragraph may appear in any order.
-
At the outer level of a
class definition, the CURRENCY, CURSOR and CRT STATUS clauses must not be
specified.
-
In the factory or object of
a class definition, the only clauses that can be specified are the CURRENCY,
CURSOR, and CRT STATUS clauses.
-
If the
Special-Names
paragraph is specified in an interface definition, the ALPHABET, CURRENCY and
DECIMAL-POINT clauses are the only permitted clauses. The data-name-1 phrase of
the CURRENCY clause must not be specified.
- Mnemonic-names can be any COBOL user-defined word. At least one
constituent character must be alphabetic.
- Function-name refers to a system device or function used by your
COBOL system.
Function-name refers to an external switch if its name is one of UPSI-0 through
UPSI-7.
- If function-name references
an external switch
or the SWITCH-n
is used,
the associated mnemonic-name cannot be specified anywhere
except in the SET
statement
. At least one condition-name should be associated with it.
No condition-name is
required.
- If function-name does not reference an external switch, the
associated mnemonic-name can be specified only in the ACCEPT, DISPLAY, SEND or
WRITE statements. A condition-name cannot be associated with such an
implementor-name.
- The literals specified in the literal phrase of the alphabet-name-1
clause:
- if numeric, must be unsigned integers and must have a value
within the range of one (1) through the maximum number of characters in the
native character set.
The lowest valid values for numeric literals in the ALPHABET
clause are sensitive to the ALPHASTART Compiler directive.
- if nonnumeric and associated with a THROUGH or ALSO phrase, must
each be one character in length.
-
cannot be specified as
floating-point literals or DBCS literals.
- If the literal phrase of the alphabet-name-1 clause is specified, a
given character must not be specified more than once in an alphabet-name
clause.
- The words THRU and THROUGH are equivalent.
-
The words STANDARD-1 and
ASCII are equivalent.
-
The reserved word IS is
never required in the Special-Names paragraph.
-
The literals specified in
the literal-4 phrase:
- if numeric, must be unsigned integers and must have a value
within the range of one (1) through the maximum number of characters in the
native character set.
- if nonnumeric and associated with a THROUGH phrase, must each be
one character in length.
-
cannot be specified as
floating-point or DBCS literals.
-
Literal-1, ... literal-5
must not specify a symbolic-character figurative constant.
-
The same
symbolic-character-1 must appear only once in a SYMBOLIC CHARACTERS clause.
-
The relationship between
each symbolic-character-1 and the corresponding integer-1 is by position in the
SYMBOLIC CHARACTERS clause. The first symbolic-character-1 is paired with the
first integer-1, the second symbolic- character-1 is paired with the second
integer-1; and so on throughout the SYMBOLIC CHARACTERS clause; the division
into IS or ARE phrases is documentary only.
The lowest valid value for integer-1 is sensitive to the SYMBSTART
Compiler directive.
-
There must be a one-to-one
correspondence between occurrences of symbolic-character-1 and occurrences of
integer-1, both within each IS or ARE phrase and within the entire SYMBOLIC
CHARACTERS clause.
-
The ordinal position
specified by integer-1 must exist in the native character set. If the IN phrase
is specified, the ordinal position must exist in the character set named by
alphabet-name-2; alphabet-name-2 must be described in an ALPHABET clause.
- Literal-6 must not be a figurative constant.
-
Integer-2 must be an
unsigned integer in the range 0 to 65535.
-
Data-name-1 of the CURSOR
IS clause must be declared in the Working-Storage section
.
-
The CRT STATUS clause
specifies a data item into which a status value is moved after each Format 4
or 5
ACCEPT statement. In
some environments, it can be defined only in the first 64K of Working-Storage.
-
Data-name-2 must be
described in the Working-Storage section and must be three bytes long.
-
The CURSOR IS clause
specifies the data item to contain the cursor address as used by the ACCEPT
statement.
General Rules
- External switches are set at run time by the operator, and the
setting can be determined
by testing the associated condition-names.
- If mnemonic-name is associated with an external switch, the status of
that switch can be altered by execution of a Format 1 SET statement (see the
section The SET Statement in this chapter).
- The alphabet-name-1 clause provides a means for relating a name to a
specified character code set and/or collating sequence. When alphabet-name-1 is
referenced in the PROGRAM COLLATING SEQUENCE clause (see the section The
Object-Computer
Paragraph) or the COLLATING SEQUENCE phrase of a SORT or MERGE statement
(see the sections The SORT Statement or The MERGE Statement), the
alphabet-name-1 clause specifies a collating sequence. When alphabet-name-1 is
referenced in a CODE-SET clause in a file description entry (see the section
The File Description - The Complete Entry Skeleton), the alphabet-name
clause specifies a character code set.
- If the STANDARD-1
or ASCII
phrase is specified, the character code set or collating
sequence identified is the American Standard Code for Information Interchange,
as defined in American National Standard X3.4-1968.
If the STANDARD-2
phrase is specified, the character code set identified is the International
Reference Version of the ISO 7-bit code, as defined in International Standard
646, 7-bit Coded Character Set for Information Processing Interchange.
If the EBCDIC
phrase is specified, the character code set or collating sequence identified is
EBCDIC.
If the NATIVE phrase is specified, the native character code set
or native collating sequence is used. The native collating sequence is either
ASCII or EBCDIC, as specified by the NATIVE Compiler directive.)
See the appendix Character Sets and Collating Sequences
for details of the ASCII code-set and the ASCII and EBCDIC collating sequences
and their correspondence.
- If the literal phrase is specified, alphabet-name-1 cannot be
referenced in a CODE-SET clause (see the section The CODE-SET Clause).
The character code set and/or collating sequence identified is that defined
according to the following rules:
- The value of each literal specifies:
- The ordinal number of a character within the native
character set, if the literal is numeric. This value must not exceed the value
which represents the number of characters in the native character set.
- The actual character within the native character set, if
the literal is nonnumeric. If the value of the nonnumeric literal contains
multiple characters, each character in the literal, starting with the leftmost
character, is assigned successive ascending positions in the collating sequence
being specified.
- The order in which the literals appear in the ALPHABET clause
specifies, in ascending sequence, the ordinal number of the character within
the collating sequence being specified.
- Any characters within the native collating sequence which are
not explicitly specified in the literal phrase, assume a position, in the
collating sequence being specified, greater than any of the explicitly
specified characters. The relative order within the set of these unspecified
characters is unchanged from the native collating sequence.
- If a character code-set is being specified, for each
character within the native character set that is not specified by the
literal-1 phrase, the implementor defines the ordinal number within the
character code-set being specified.
- If the THROUGH phrase is specified, the set of contiguous
characters in the native character set, beginning with the character specified
by the value of literal-1, and ending with the character specified by the value
of literal-2, is assigned a successive ascending position in the collating
sequence being specified. In addition, the set of contiguous characters
specified by a given THROUGH phrase can specify characters of the native
character set in either ascending or descending sequence.
- If the ALSO phrase is specified, the characters of the native
character set specified by the value of literal-1, and literal-3 are assigned
to the same position in the collating sequence being specified
, or in the
character code set that is used to represent the data
- The character that has the highest ordinal position in the program
collating sequence is associated with the figurative constant HIGH-VALUE
except when this
figurative constant is specified as a literal in the
Special-Names
paragraph
If more than one character has the highest position in the program
collating sequence, the last character specified is associated with the
figurative constant HIGH-VALUE.
- The character that has the lowest ordinal position in the program
collating sequence is associated with the figurative constant LOW-VALUE
except when this
figurative constant is specified as a literal in the
Special-Names
paragraph
If more than one character has the lowest position in the program
collating sequence, the first character specified is associated with the
figurative constant LOW-VALUE.
-
Floating-point literals
cannot be used in a user-specified collating sequence.
-
When specified as literals
in the Special-Names paragraph, the figurative
constants HIGH-VALUE and LOW-VALUE are associated with those characters having
the highest and lowest positions, respectively, in the native collating
sequence.
-
The SYMBOLIC CHARACTERS
clause is used to define user-defined words that can be used like figurative
constants. If the IN phrase is not specified, symbolic-character-1 represents
the character whose ordinal position in the native character set is specified
by integer-1. If the IN phrase is specified, integer-1 specifies the ordinal
position of the character that is represented in the character set named by
alphabet-name-2.
-
The internal representation
of symbolic-character-1 is the internal representation of the character that is
represented in the native character set.
- Literal-6, which appears in the CURRENCY SIGN IS literal clause, is
used in the PICTURE clause to represent the currency symbol. The literal is
limited to a single character and must not be one of the following characters:
- digits 0 through 9;
- uppercase alphabetic characters A, B, C, D, L, P, R, S, V, X, Z,
or the space;
C and R are allowed,
L is allowed,
E cannot be used,
N cannot be used,
G cannot be used,
lowercase alphabetic
characters a through z,
(except e, f, g, h,
i, j, k, m, n, o, q, t, u, w, y);
- special characters *, +, -, ,, ., ;, (, ), ", / or, =.
If this clause is not present, only the currency sign defined in the
COBOL character set is used in the PICTURE clause. See the section Character
Set in the chapter Concepts of the COBOL Language.
- The DECIMAL-POINT IS COMMA clause means that the function of comma
and period are exchanged in the character-string of the PICTURE clause and in
numeric literals.
-
If the NUMERIC SIGN clause
is specified, the default for signed numeric items is for the sign to be stored
as a trailing separate character.
-
Wherever a mnemonic-name
is allowed, you can use the function-name.
- If function-name does not reference an external switch, it can be
selected from the following list:
TAB |
Skip to Vertical Tabulation Position (inserts
ASCII X"0B" in the output record as appropriate) |
WRITE ADVANCING statement |
PRINTER |
Printer |
DISPLAY statement |
FORMFEED |
Skip to new page (inserts ASCII X"0C" in
the output record as appropriate) |
WRITE ADVANCING statement |
COMMAND-LINE |
Command transfer |
ACCEPT and DISPLAY statements |
ARGUMENT-NUMBER
|
Command-Line argument number |
ACCEPT and DISPLAY statements |
ARGUMENT-VALUE |
Command-Line argument value |
ACCEPT statement |
ENVIRONMENT-NAME
|
Environment-variable name |
DISPLAY statement |
ENVIRONMENT-VALUE
|
Environment-variable value |
ACCEPT and DISPLAY statements |
SYSERR |
Standard error device |
DISPLAY statement |
The following table
reflects the support for function names offered by OS/VS COBOL, VS COBOL II and
SAA in this COBOL system.
Table 6-1: Function Names Support
|
OSVS |
VSC2 Rel (2) |
COBOL/370 or VSC2 Rel (3)/(4) |
SAA L1 |
SYSIN |
y |
y |
y |
y |
SYSIPT |
U |
U |
y |
|
SYSOUT |
y |
y |
y |
y |
SYSLIST |
|
|
y |
|
SYSLST |
U |
U |
y |
|
SYSPCH |
U |
U |
y |
|
SYSPUNCH |
U |
y |
y |
|
CONSOLE |
y |
y |
y |
y |
C01 |
y |
y |
y |
y |
C02 |
y |
y |
y |
|
C03 |
y |
y |
y |
|
C04 |
y |
y |
y |
|
C05 |
y |
y |
y |
|
C06 |
y |
y |
y |
|
C07 |
y |
y |
y |
|
C08 |
y |
y |
y |
|
C09 |
y |
y |
y |
|
C10 |
y |
y |
y |
|
C11 |
y |
y |
y |
|
C12 |
y |
y |
y |
|
S01 |
y |
y |
y |
|
S02 |
y |
y |
y |
|
S03 |
|
U |
y |
|
S04 |
|
U |
y |
|
S05 |
|
U |
y |
|
CSP |
y |
y |
y |
y |
1 char rw literal |
y |
|
|
|
AFP-5A |
|
|
y |
|
y |
Documented and accepted by mainframe compilers and
the COBOL system. |
U |
Undocumented but accepted by mainframe
compiler. |
-
The CLASS clause provides a
means for relating a name to the specified set of characters listed in that
clause. Class-name-1 can be referenced only in a class condition. The
characters specified by the values of the literals in this clause define the
exclusive set of characters which constitute class-name-1. The value of each
literal specifies:
- the ordinal number of a character within the native character
set, if the literal is numeric. This value must not exceed the value which
represents the number of characters in the native character set.
- the actual character within the native character set, if the
literal is nonnumeric. If the value of the nonnumeric literal contains multiple
characters, each character in the literal is included in the set of characters
identified by class-name-1.
If the THROUGH phrase is
specified, the contiguous characters in the native character set beginning with
the character specified by the value of literal-4, and ending with the
character specified by the value of literal-5, are included in the set of
characters identified by class-name-1. Additionally, the contiguous characters
specified by a given THROUGH phrase can specify characters of the native
character set in ascending or descending sequence.
- All clauses specified in the
Special-Names
paragraph for a sourced element also apply to source elements contained within
that source element. The condition-names specified in the containing source
element's Special-Names paragraph can be
referenced from any contained source element.
-
The CALL-CONVENTION clause
allows you to select one of several pre-defined parameter passing conventions
which allow you to CALL subprograms written in languages other than COBOL, and
which use different parameter passing conventions.
-
The CONSOLE IS CRT clause
causes any ACCEPT or DISPLAY statement whose operand is not a screen-name, and
that has no phrases specific to a particular format, to be treated as Format 5.
If the CONSOLE IS CRT clause is not present, these statements are treated as
the standard ANSI ACCEPT or DISPLAY.
-
The CURSOR IS clause
specifies the data item to contain the cursor address used by the ACCEPT
statement.
- At the start of an ACCEPT statement, if data-name-1 contains a
value that is a valid character position on the screen, that position is used
as the initial position for the cursor. Otherwise, data-name-1 is ignored, and
the initial position for the cursor is the start of the first input field on
the screen. At the end of an ACCEPT statement, if the position in data-name-1
has been used in that statement, data-name-1 is updated to show the position of
the cursor at the termination of the ACCEPT statement.
- CURSOR IS has no effect on the positioning of fields on the
screen.
- Data-name-1 must be 4 or 6 characters in length. If data-name-1
is 4 characters in length, the first two characters are interpreted as line
number, and the second two as column number. If data-name-1 is 6 characters in
length, the first three characters are interpreted as line number, and the
second three as column number.
- The clause has no effect if data-name-1 contains an illegal
position (for example, zeros, a nonnumeric value, or a value that is beyond the
bottom of the screen).
- If data-name-1 contains a valid position that does not correspond
to an input field being accepted by the current ACCEPT statement, the cursor is
positioned to the next such field or, if there is none, to the first such
field. The ordering of the fields is the order in which their descriptions
appear in the Data Division.
-
The CRT STATUS clause
specifies a 3-byte data item, into which a status value is moved after each
Format 4 or Format 5 ACCEPT statement.
If the CRT STATUS clause
is specified in the Special-Names paragraph, every Format 4
or 5 ACCEPT statement (as described later in this chapter) places a value into
data-name-2 to indicate the outcome of the ACCEPT operation. Data-name-2
consists of status keys which are set to indicate possible conditions resulting
from the completion of the operation. They are described below.
CRT Status
Keys
CRT Status Key 1: The first byte of data-name-1 is CRT Status
Key 1 and should be described as PICTURE 9 USAGE DISPLAY. It indicates the
condition that caused the termination of the ACCEPT operation. The possible
values are:
"0" |
indicates a terminator key or auto-skip out of the final field |
"1" |
indicates a user-defined function key |
"2" |
indicates a COBOL system-defined function key |
"9" |
indicates an error |
A terminator key is a key
whose purpose is terminating ACCEPT operations (for example, Enter). A
particular configuration option causes the field-tab key, when used in the
final field of an ACCEPT, to act as a terminator key. Defining function keys is
also a configuration option.
A termination that returns a value of "0" is called a normal
termination.
If the ACCEPT statement contains an ON EXCEPTION phrase, any value in
CRT Status Key 1, except " 0", will cause the execution of the
imperative-statement in that phrase.
CRT Status Key 2: The second byte of data-name-1 is CRT Status
Key 2 and contains a code giving further details of the condition that
terminated the ACCEPT operation. Its format and possible values depend on the
value in CRT Status Key 1, as shown in the following table.
Table 6-2: Valid Combinations of CRT Status Keys 1 and 2
Key 1 |
Key 2 |
Meaning |
Format |
Value |
0 |
PIC 9 DISPLAY |
0 |
The operator pressed a terminator key |
0 |
PIC 9 DISPLAY |
1 |
Auto-skip out of the last field |
1 |
PIC 99 COMP |
0-127 |
The function key number |
2 |
PIC 99 COMP |
0-26 |
The function key number |
9 |
PIC 99 COMP |
0 |
No items fall within the screen |
See your COBOL system documentation on screen handling and user
interfaces for an explanation of function key numbers.
CRT Status Key 3: The third byte of data-name-1 is CRT Status Key 3 and
should be described as PICTURE 99 COMP-X or as PICTURE 99 COMP (with the
NOIBMCOMP directive specified). If CRT Status Key 1 and CRT Status Key 2 are
zero, then CRT Status Key 3 contains the raw keyboard code for the key that
terminated the ACCEPT operation. Otherwise, the contents of CRT Status Key 3
are undefined.
Where a sequence of keystrokes rather than a single key has been
configured to perform a single function, only the code for the first keystroke
is returned.

The Repository paragraph allows
specification of function prototype names, class names, interface names and
property names that may be used within the scope of this environment division.
It also allows declaration of intrinsic-function-names that may be used without
specifying the word FUNCTION.
General Format

Directives
-
In addition to the Compiler directives which provide flagging and modify the
reserved word list, the following directives may impact either the syntax or
semantics described in this section.
- RDFPATH - specifies the location of the library for the
repository files.
Syntax Rules
- If any class-name-1, interface-name-2, function-prototype-name-2,
intrinsic-function-name-1 or property-name-1 is specified more than once in the
Repository
paragraph, all the specifications for that name must be identical.
- Literal-1, literal-2, literal-3 and literal-4 must be nonnumeric
literals and must not be figurative constants.
- If the CLASS phrase is specified, class-name-2, class-name-3, and
interface-name-1 must be:
- Parameters of a containing class definition or interface
definition; or
- Defined in the same
Repository
paragraph where class-name-1 is defined.
- If class-name-1 is specified in the USING phrase of the CLASS-ID
paragraph of a class definition containing this
Repository
paragraph or in the USING phrase of the INTERFACE-ID paragraph of an interface
definition containing this
Repository
paragraph, the EXPANDS phrase must not be specified.
- If the INTERFACE phrase is specified, class-name-4, interface-name-3
and interface-name-4 must be:
- Parameters of a containing class definition or interface
definition; or
- Defined in the same repository paragraph where interface-name-2
is defined.
- If interface-name-2 is specified in the USING phrase of the CLASS-ID
paragraph of a class definition containing this
Repository
paragraph or in the USING phrase of the INTERFACE-ID paragraph of an interface
definition containing this
Repository
paragraph, the EXPANDS phrase must not be specified.
- Either function-prototype-name-1 must be the name of a function
prototype or a function definition specified previously in this compilation
group or:
- if literal-4 is not specified, there must be information in the
external repository for the function function-prototype-name-1,
- if literal-4 is specified, there must be information in the
external repository for the function literal-4.
- Intrinsic-function-name-1 must not be specified as a user-defined
word within the scope of this
Repository
paragraph.
- If ALL is specified in the intrinsic format of the
function-specifier, none of the names of the intrinsic functions can be
specified as a user-defined word within the scope of the
Repository
paragraph.
- If the specified class-name-1 is the name of the class definition in
which this Repository paragraph is specified,
references to class-name-1 are to that class definition and this
class-specifier is ignored.
- If the specified interface-name-2 is the name of the interface
definition in which this Repository paragraph is specified,
references to interface-name-2 are to that interface definition and this
interface-specifier is ignored.
- If the specified function-prototype-name-1 is the name of the
function definition in which this
Repository
paragraph is specified, references to function-prototype-name-1 are to that
function definition and this function-specifier is ignored.
- If the CLASS phrase is specified:
- If literal-1 is specified, there must be information in the
external repository for the class literal-1.
- If literal-1 is not specified, there must be information in the
external repository for the class class-name-1.
- If the INTERFACE phrase is specified:
- If literal-2 is specified, there must be information in the
external repository for the interface literal-2.
- If literal-2 is not specified, there must be information in the
external repository for the interface interface-name-2.
- If the PROPERTY phrase is specified:
- If literal-3 is specified, there must be information in the
external repository for the property literal-3 that is part of one of the
classes or interfaces that are declared in this
Repository
paragraph.
- If literal-3 is not specified, there must be information in the
external repository for the property property-name-1 that is part of one of the
classes or interfaces that are declared in this
Repository
paragraph.
General Rules
- Class-name-1 is the name of a class that may be used throughout the
scope of the containing environment division.
- If the AS phrase is specified, literal-1, literal-2 or literal-4 is
the name by which the class, interface or function respectively, is known to
the operating environment. Literal-3 is the name known to the operating
environment for a method that implements the named property. The AS phrase is
required when the name of a class, interface, property or functiondoes not
follow the rules for formation of a user-defined word or when the name is case
specific.
- Class-name-3 and interface-name-1 are actual parameters for the
parameterized class referenced by class-name-2.
- Class-name-4 and interface-name-4 are actual parameters for the
parameterized interface referenced by interface-name-3.
- If the EXPANDS phrase is specified in a class-specifier, a class
class-name-1 is created from the parameterized class class-name-2. The number
of parameters in the USING phrase of the EXPANDS phrase of the class-specifier
shall be the same as the number of parameters in the USING phrase of the
CLASS-ID paragraph of class-name-2. The interface for class-name-1 is the
interface specified for class-name-2 with the parameters of class-name-2
replaced by the parameters specified in the class-specifier.
The class class-name-1 is created from the parameterized class
class-name-2 by replacing each specification of the formal parameter by the
corresponding actual parameter. This replacement is done after the processing
of COPY and REPLACE statements.
- The compiler uses the information specified for class-name-1 together
with the external repository to determine the details of the class that is to
be used. The repository information for the class must be in a file whose name
is the externalized name of the class with the extension rdf. If the RDFPATH
directive is specified, the file must be in the specified directory; otherwise,
the file must be in the local directory where the .int and .idy files will be
created.
- Interface-name-2 is the name of an interface that may be used
throughout the scope of the containing environment division.
- If the EXPANDS is specified in an interface-specifier, an interface
interface-name-2 is created from the parameterized interface interface-name-3.
The number of parameters in the USING phrase of the EXPANDS phrase of the
interface-specifier shall be the same as the number of parameters in the USING
phrase of the INTERFACE-ID paragraph of interface-name-3. The interface for
interface-name-2 is the interface specified for interface-name-3 with the
parameters of interface-name-3 replaced by the parameters specified in the
interface-specifier.
The interface interface-name-2 is created from the parameterized
interface interface-name-3 by replacing each specification of the formal
parameter by the corresponding actual parameter. This replacement is done after
the processing of COPY and REPLACE statements.
- The compiler uses the information specified for interface-name-2
together with the external repository to determine the details of the interface
that is to be used. The repository information for the interface must be in a
file whose name is the externalized name of the interface with the extension
rdf. If the RDFPATH directive is specified, the file must be in the specified
directory; otherwise, the file must be in the local directory where the .int
and .idy files will be created.
- Property-name-1 is the name of an object property that may be used
throughout the scope of the containing environment division.
- Function-prototype-name-1 is the name of a function prototype that
may be used throughout the scope of the containing environment division.
- If prototype definition or a function defintion for
function-prototype-name-1 is specified previously in this compilation group,
that definition is used to determine the details for activating the function
identified by function-prototoype-name-1. Otherwise, the external repository is
used to determine the details for activating the function with the
externatlized name function-prototype-name-1 and that function is activated
when fuinction-prototype-name-1 is referenced.
- Intrinsic-function-name-1 may be specified in a function-identifier
without being preceded by the word FUNCTION.
- If ALL is specified in the intrinsic format of the
function-specifier, it is as if each of the intrinsic-function-names defined in
the chapter Procedure Division - Intrinsic Functions were specified.
Function
The input-output section deals with the information needed to control
transmission and handling of data between external media and a runtime
element.
General Format
INPUT-OUTPUT SECTION.
[ file-control-paragraph ]
[ i-o-control-paragraph ]
Syntax Rules
-
The input-output section
can be specified in a program definition or a function definition. Within a
class definition, the input-output section must be specified only in a factory
definition, an object definition, or a method definition. The input-output
section must not be specified within an interface definition.
Function
The File-Control paragraph names each file
and allows specification of other file-related information.
General Format
Function
The FILE-CONTROL entry names a file and can specify other file-related
information.
Although they are a part of
the standard COBOL definition, the RECORD DELIMITER and RESERVE phrases and
ellipses in the ASSIGN clause are explicitly excluded from the X/Open COBOL
language definitions and should not be used in a conforming X/Open COBOL source
program.
General Formats
Format 1 (Record Sequential Files)
Format 2 (Line Sequential Files)
Format 3 (Relative Files)
Format 4 (Indexed Files)
Format 5 (Sort-Merge Files)
Directives
-
In addition to Compiler directives which provide flagging and modify the
reserved word list, the following directives may impact either the syntax or
semantics described in this section.
- ASSIGN - determines how the literal, data-name, or
external-file-reference is evaluated.
- SEQUENTIAL - determines whether files defined as ORGANIZATION IS
SEQUENTIAL are considered LINE SEQUENTIAL or RECORD SEQUENTIAL.
Syntax Rules
All Formats (All Files)
- The SELECT clause must be specified first in the file control entry.
The clauses which follow the SELECT clause can appear in any order.
- Each file described in the Data Division must be named once, and only
once, as file-name in the File-Control paragraph. Each file
specified in the file control entry must have a file description entry in the
Data Division of the same factory, method, object, function or program.
- If the ACCESS MODE clause is not specified, the ACCESS MODE IS
SEQUENTIAL clause is implied.
-
Data-name-1 can be declared
in the Data Division as an alpha-numeric or group data item long enough to hold
the external name of the file. If it is not explicitly declared within the
source element, your COBOL system will declare it implicitly as an alphanumeric
data item long enough to hold the maximum permissible size of file-name. If
data-name-1 occurs in the FROM option, the data item must be explicitly
declared in the Data Division.
-
The NOT OPTIONAL phrase has
effect only when the file is opened input-output.
-
External-file-reference,
data-name-1, or literal-1 specifies the external name of the file.
If the EXTERNAL or
DYNAMIC option is used, literal-1 must not be specified.
If the DYNAMIC option is
used, the word specified for the external file-name will be interpreted as
external-file-reference.
- Data-name-2 must be defined in the Data Division as a two-character,
alphanumeric data item
or a two-character
numeric data item with USAGE DISPLAY
and must not be defined in the File or
LOCAL-STORAGE
Sections of the Data Division.
-
Data-name-3 must be defined
as a group item of 6 bytes in the Working-Storage or Linkage Section of the
Data Division.
-
Data-name-4 must be
defined in the Working-Storage Section as an alphanumeric data item.
- All data-names can be qualified.
Format 1 (Record Sequential Files only)
-
Literal-2 must be a
one-character nonnumeric literal.
-
Data-name-5 can be
qualified. It must be defined in the Data Division as a one-character data item
of category alphanumeric. It cannot be defined in the
File or Report Sections of the Data Division.
-
Character-string must not
be a reserved word, a user-defined word that is defined elsewhere, or a
literal.
Formats 1 and 2 (Record and Line Sequential Files)
- When the ORGANIZATION clause is not specified, sequential
organization is assumed.
-
KEYBOARD means console
input.
-
DISPLAY means console
output.
-
PRINTER specifies the
system's main printer.
-
PRINTER-1 specifies the
system's second printer.
Format 3 (Relative Files)
- If a relative file is to be referenced by a START statement, the
RELATIVE KEY phrase must be specified for that file.
- Data-name-5 must not be defined in a record description entry
associated with that file-name.
- The data item referenced by data-name-5 must be defined as an
unsigned integer.
Format 4 (Indexed Files)
-
Split-key-name is a
concatenation of one or more data items within a record associated with that
file-name. It can be referenced only in START and READ statements.
- The data items referenced by data-name-5 and data-name-8
and any data-names
referenced by split-key-name-1 and split-key-name-2
must be defined within a record description entry associated with
the file-name.
Any of these data items
can be defined as any supported data category. However, the key is still
treated as an alphanumeric item for the input and output statements against the
file named > in the SELECT clause.
- Data-name-5 and data-name-8
and any data-names
referenced by split-key-name-1 and split-key-name-2
cannot describe an item whose size is variable. See the section
The OCCURS Clause in this chapter.
- Data-name-8 cannot reference an item whose leftmost character
position corresponds to the leftmost character position of the item referenced
by data-name-5 or by another data-name-8 specified for the same file.
-
If the PASSWORD clause is
specified, it must immediately follow its associated RECORD KEY or ALTERNATE
RECORD KEY clause.
Format 5 (Sort-Merge Files)
- Each sort or merge file described in the Data Division must be named
once and once only as file-name in the
File-Control
paragraph. Each sort or merge file specified in the file control entry must
have a sort-merge file description entry in the Data Division.
- Since file-name represents a sort or merge file, only the ASSIGN
clause is permitted to follow file-name in the
File-Control
paragraph.
General Rules
All Formats (All Files)
- The ASSIGN clause specifies the association of the file referenced by
file-name-1 to a storage medium. The first assignment takes effect,
subsequent assignments
within any one ASSIGN clause are documentary only.
- The RESERVE clause allows the user to specify the required number of
input-output areas.
The RESERVE clause is
documentary only, unless the COBOL system documentation specific to your
operating system indicates otherwise.
- The ORGANIZATION clause specifies the logical structure of a file.
The file organization is established at the time a file is created and cannot
subsequently be changed.
-
When the FILE STATUS clause is specified, a value will be moved by the
Run-Time System into the data item specified by data-name-2 after the execution
of every statement that references that file either explicitly or implicitly.
This value indicates the status of execution of the statement. (See the section
I/O Status later in this manual.)
Data-name-3, if
specified, is documentary only.
-
The PASSWORD clause is
documentary only.
-
Use of the reserved word
DYNAMIC in an ASSIGN clause indicates that the value of literal-1 or
data-name-1 in that ASSIGN clause is the specified file's name in the external
file-storage environment.
-
Use of the reserved word
EXTERNAL in an ASSIGN clause indicates that external-file-reference identifies
the specified file to the external environment for possible further mapping to
an external file-storage environment-name. (See your COBOL system documentation
on file handling for details on setting up external-file-name for your
particular operating environment.)
If
external-file-reference contains the character "–", then only
that part of the name following the last "–" is used to
identify the file to the external environment.
-
The DISK option without
external-file-reference, data-name-1 or literal-1 and without the FROM option,
specifies a disk file whose name will be given in a VALUE OF FILE-ID clause in
the file description for the file. If that file description contains no VALUE
OF FILE-ID clause, the name of the disk file is assumed to be the same as
file-name-1 (known as the internal file-name).
-
If any of the keywords
DISK, KEYBOARD, DISPLAY, PRINTER or PRINTER-1 are followed by
external-file-reference, data-name-1 or literal-1, that keyword is ignored.
-
The DISK option with the
FROM option specifies a disk file whose name on the disk is the value of
data-name-1. However, if when an OPEN statement is executed for that file,
data-name-1 contains all spaces, the name of the disk file is assumed to be the
same as file-name-1 (known as the internal-file-name).
- The OPTIONAL phrase applies only to files opened in the INPUT,
I-O or EXTEND
mode. Its specification is required for files that are not necessarily present
each time the runtime element is executed.
-
The SHARING clause
specifies the sharing mode to be used for the file unless it is overridden by
the SHARING phrase of the OPEN statement. This clause also specifies whether
record locks have an effect. Additional details are specified in
the section Sharing
Mode in the chapter Concepts of a Compilation Group .
Formats 1, 3 and 4 (Record Sequential, Relative and Indexed
files)
-
The LOCK MODE clause is an
optional clause in the file control entry and is used to specify the locking
technique used for the file.
If this clause is
omitted, opening the file causes it to become exclusive, with the exception of
OPEN INPUT.
When LOCK MODE IS
EXCLUSIVE is specified, the run unit acquires a lock on the whole file when it
opens the file.
When LOCK MODE IS
AUTOMATIC or LOCK MODE IS MANUAL is specified, the file that the run unit opens
is shareable. Files opened OUTPUT, and indexed and relative files opened EXTEND
are, however, always exclusive.
-
The ROLLBACK clause
requests transaction logging for a file under those COBOL systems that support
that feature. See your COBOL system documentation on file handling for details
of how it is implemented in your system.
If the ROLLBACK clause is
specified then WITH LOCK ON MULTIPLE RECORDS will automatically be in effect.
-
The WITH LOCK ON RECORD
clause specifies single record locking for the file.
The WITH LOCK ON MULTIPLE
RECORDS clause specifies multiple record locking for the file. This clause must
be present if multiple record locking is required.
-
If LOCK MODE IS AUTOMATIC
WITH LOCK ON RECORD is specified for a file, a record lock is acquired by the
execution of the READ statement and is released upon execution of a subsequent
I/O operation on this file, with the exception of a START statement.
If LOCK MODE IS AUTOMATIC
WITH LOCK ON MULTIPLE RECORD is specified for a file, a record lock is acquired
by the execution of the READ statement and is not released until a CLOSE,
COMMIT, ROLLBACK or UNLOCK statement is executed, or until an individual lock
is released by a DELETE statement.
-
If LOCK MODE IS MANUAL WITH
LOCK ON RECORD is specified, a lock is acquired by a READ statement only if it
includes the WITH LOCK phrase, and is released upon execution of a subsequent
I/O operation on this file, with the exception of a START statement.
If LOCK MODE IS MANUAL
WITH LOCK ON MULTIPLE RECORDS is specified, a record lock is acquired by the
READ WITH KEPT LOCK statement and is not released until a CLOSE, COMMIT,
ROLLBACK or UNLOCK statement is executed.
-
When the lock mode is
MANUAL or AUTOMATIC, single record locking is assumed unless the WITH LOCK ON
MULTIPLE RECORDS phrase is included.
-
If a file is defined as
EXTERNAL and the operating system file-name is assigned by means of a
file-name, for example, by use of either the ASSIGN directive or keyword, using
data-name-1 in the SELECT/ ASSIGN statement, or using Format 2 of the VALUE OF
phrase of an FD, then the following rules should be followed:
- an identifier with the same name should be used to contain the
physical file-name in all source elements which reference the file.
- the definition of the identifier which contains the physical
file-name should also contain the EXTERNAL attribute.
No violation of these
rules will be detected at compile time, but, if any runtime element in the run
unit violates these rules, the results at run time will be undefined.
For further details of
the effects of record locking, see your COBOL system documentation on file
handling.
Format 1 (Record Sequential Files)
- The MULTIPLE REEL or MULTIPLE UNIT phrase must be specified if it is
possible or intended that the file can be closed by use of the CLOSE REEL or
CLOSE UNIT statement.
- Records in the file are accessed in the sequence specified by
predecessor-successor record relationships which are established by the
execution of WRITE statements when the file is created or extended.
-
Using the LINE ADVANCING
FILE phrase causes a file suitable for a printer to be produced. This file will
have an initial carriage-return character, and each record is written with
AFTER ADVANCING 1 LINE as the default advancing phrase. See your COBOL system
documentation on file handling for further details of the format.
-
The PADDING CHARACTER
clause is documentary only.
If the associated file
connector is an external file connector, all PADDING CHARACTER clauses in a run
unit which are associated with that file connector must have the same
specification. If data-name-5 is external, it must reference an external data
item.
The RECORD DELIMITER
clause is documentary only.
Format 2 (Line Sequential Files)
-
When LINE SEQUENTIAL
ORGANIZATION is specified either implicitly or explicitly, the file is treated
as consisting of fixed length records, each containing one line of data. The
records are stored with trailing spaces removed. The definition of a line of
data varies among different operating systems. Some terminate line
"records" with one or both of the Carriage Return and Line Feed
characters, and some pad out as fixed length records. Your COBOL system,
therefore, always produces files which are compatible in this respect with the
editor software in any operating system.
-
The LOCK MODE IS clause is
documentary only.
Format 3 (Relative Files)
- When access mode is sequential, records in the file are accessed in
order of ascending relative record numbers of existing records in the file.
- When access mode is random, the value of the RELATIVE KEY data item
indicates the record to be accessed.
- All records stored in a relative file are uniquely identified by
relative record numbers, which also specify the record's logical ordinal
position in the file. The first logical record has a relative record number of
1, and subsequent logical records have relative record numbers of 2, 3, 4, ...
.
- The data item specified by data-name-5 is used to communicate a
relative record number between the user and the operating system.
Format 4 (Indexed Files)
- When access mode is sequential, records in the file are accessed in
order of ascending record key values within a given key of reference.
- When access mode is random, the value of the record key data item
indicates the record to be accessed.
- The RECORD KEY clause specifies the record key that is the prime
record key for the file. The values of the prime record key must be unique
among records of the file. This prime record key provides an access path to
records in an indexed file.
- If the file has more than one record description entry, data-name-1
need be described only in one of these record description entries. The
identical character positions referenced by data-name-1 in any one record
description entry are implicitly referenced as keys for all other record
description entries of that file.
-
If the associated file
connector is an external file connector, all file description entries in the
run unit which are associated with that file connector must specify the same
data description entry for data-name-1 with the same relative location in the
associated record.
- The ALTERNATE RECORD KEY clause specifies a record key that is an
alternative record key for the file. This alternate record key provides an
alternative access path to records in an indexed file.
- The data description of data-name-5
or split-key-name-1
and data-name-8
or split-key-name-2,
as well as of relative locations within a record, must be the same
as that used when the file was created. The number of alternate keys for the
file must also be the same as that used when the file was created. This
checking is configurable in some environments. (See the KEYCHECK attribute in
the Callable File Handler configuration file, which is documented in the
section "Configuring the Callable File Handler" of the
"Programmer's Guide to File Handling".)
- The DUPLICATES phrase specifies that the value of the associated
record key can be duplicated within any of the records in the file. If the
DUPLICATES phrase is not specified, the value of the associated record key must
not be duplicated among any of the records in the file.
- For duplicate values, the correct duplicate entry must be located
using sequential reads from the first duplicate entry.
-
The SUPPRESS phrase
requests the use of a sparse key for an alternate index. Sparse keys are only
available through the Callable File Handler and are not available on all
systems (see your COBOL system documentation on file handling for details).
Format 5 (Sort-Merge Files)
- The file-control entry names a sort or merge file and specifies the
association of the file to a storage medium.
-
When the SORT STATUS
clause is specified, a value is placed into the two-character data item
specified by data-name-2 after the execution of each sort operation. This value
indicates the status at completion of the operation.
The resulting status of
the sort operation is indicated by valid combinations of status keys 1 and 2.
For explanations of status keys 1 and 2 and definitions of status, see the
section I/O Status earlier in this chapter.
The following
combinations of status keys are possible. Status key 1=0 and status key 2=0
indicates successful completion. Status key 1=3 and status key 2=0 indicates a
permanent error. If status key 1=9, status key 2 contains an operating system
error message number.
The FILE STATUS clause
can be used instead of a SORT STATUS clause, but is treated as a synonym for
it, when specified for a SORT or merge file.
- The ASSIGN clause is documentary only.
Function
The I-O-Control paragraph specifies the
points at which rerun is to be established, the memory area which is to be
shared by different files, and for files with sequential organization the
location of files on a multiple file reel.
The RERUN and MULTIPLE FILE
TAPE clauses of the I-O-Control paragraph are classed as
obsolete elements in the ANSI'85 standard and are scheduled to be deleted from
the next full revision of the ANSI Standard.
All dialects within this
COBOL implementation fully support this syntax. The FLAGSTD Compiler directive
can be used to detect all occurrences of this syntax.
Although they are a part of
the standard COBOL definition, the RERUN and MULTIPLE FILE TAPE clauses are
explicitly excluded from the X/Open COBOL language definitions and should not
be used in a conforming X/Open COBOL source program.
General Format
Syntax Rules
- The I-O-Control paragraph is optional.
- When either the integer-1 RECORDS clause or the integer-2 CLOCK-UNITS
clause is specified, character-string must be given in the RERUN clause.
- In the SAME AREA clause, SORT and SORT-MERGE are equivalent.
- If the SAME SORT AREA or SAME SORT-MERGE AREA clause is used, at
least one of the file-names must represent a sort or merge file. Files that do
not represent sort or merge files can also be named in the clause.
- The two forms of the SAME clause (SAME AREA, SAME RECORD AREA) are
considered separately in the following:
More than one SAME clause can be included in a source element,
subject to the following restrictions:
- A file-name must not appear in more than one SAME AREA clause.
- A file-name must not appear in more than one SAME RECORD AREA
clause.
- If one or more file-names of a SAME AREA clause appear in a SAME
RECORD AREA clause, all of the file-names in that SAME AREA clause must appear
in the SAME RECORD AREA clause. However, additional file-names not appearing in
that SAME AREA clause can also appear in that SAME RECORD AREA clause. The rule
that only one of the files mentioned in a SAME AREA clause can be open at any
one time takes precedence over the rule that all files mentioned in a SAME
RECORD AREA clause can be open at any one time.
- A file-name that represents a SORT or MERGE file must not appear
in a SAME AREA clause.
- A file-name that represents a sort or merge file must not appear
in more than one SAME SORT AREA or SAME SORT-MERGE AREA clause.
- If a file-name that does not represent a sort or merge file
appears in a SAME AREA clause and one or more SAME SORT AREA or SAME SORT-MERGE
AREA clauses, all of the files named in that SAME AREA clause must be named in
that SAME SORT AREA or SAME SORT-MERGE AREA clause(s).
- The files referenced in the SAME AREA, SAME SORT AREA, SAME
SORT-MERGE AREA, or SAME RECORD AREA clause need not all have the same
organization or access.
-
Character-string must not
be a reserved word, a literal or a user-name.
- The END OF REEL/UNIT clause can only be used if file-name-2 is a
sequential file.
- More than one RERUN clause can be specified for a given file-name-2,
subject to the following restrictions:
- When multiple integer-1 RECORD clauses are specified, no two of
them can specify the same file-name-2.
- When multiple END OF REEL or END OF UNIT clauses are specified,
no two of them can specify the same file-name-2.
- Only one RERUN clause containing the CLOCK-UNITS clause can be
specified.
-
Each clause in the
I-O-Control
paragraph may optionally be followed by a period.
General Rules
-
The RERUN clause is
documentary only.
- The SAME AREA clause specifies that two or more files that do not
represent sort or merge files are to use the same memory area during
processing. The area being shared includes all storage area assigned to the
files specified. It is not, therefore, valid to have more than one of the files
open at the same time. (See Syntax Rule 5c.)
- The SAME RECORD AREA clause specifies that two or more files are to
use the same memory area for processing the current logical record. All of the
files can be open at the same time. A logical record in the SAME RECORD AREA is
considered as a logical record of each opened output file whose file-name
appears in this SAME RECORD AREA clause and of the most recently read input
file whose file-name appears in this SAME RECORD AREA clause. This is
equivalent to an implicit redefinition of the area; that is, records are
aligned on the leftmost character position.
-
The APPLY clause is
documentary only.
-
The MULTIPLE FILE clause is
documentary only.
- If the SAME SORT AREA or SAME SORT-MERGE AREA clause is used, at
least one of the file-names must represent a sort or merge file. Files that do
not represent sort or merge files can also be named in the clause. This clause
specifies that storage is shared as follows:
- The SAME SORT AREA or SAME SORT-MERGE AREA clause specifies a
memory area which will be made available for use in sorting or merging each
sort or merge file named. Thus any memory area allocated for the sorting or
merging of a sort or merge file is available for reuse in sorting or merging
any of the other sort or merge files.
- In addition, storage areas assigned to files that do not
represent sort or merge files can be allocated as needed for sorting or merging
the sort or merge files named in the SAME SORT AREA or SAME SORT-MERGE AREA
clause.
- Files other than sort or merge files do not share a storage area.
If the user wishes these files to share a storage area, he must also include in
the source element a SAME AREA or SAME RECORD AREA clause naming these files.
-
During the execution of a SORT or MERGE statement that refers to a sort or
merge file named in this clause, any non-sort-merge files named in this clause
must not be open.
Copyright © 2001 Micro Focus International Limited. All rights reserved.
This document and the proprietary marks and names
used herein are protected by international law.