WRITE WORK [FILE ] work-file-number
[VARIABLE ]
operand1
|
This document covers the following topics:
For an explanation of the symbols used in the syntax diagram, see Syntax Symbols.
Related Statements: DEFINE WORK
FILE
| READ WORK
FILE
| CLOSE WORK
FILE
Belongs to Function Group: Control of Work Files / PC Files
The WRITE WORK FILE
statement is used to write records to a
physical sequential work file.
It is possible to create a work file in one program or processing loop
and to read the same file in a subsequent independent processing loop or in a
subsequent program using the READ WORK
FILE
statement.
Note:
For Unicode and code page support, see Work Files and Print Files on Windows, UNIX and OpenVMS
Platforms in the Unicode and Code Page
Support documentation.
Concurrent writes to a work file opened in append mode are rejected in Natural for Windows: the open operation will fail with error NAT1500 if the work file had been opened by another process.
Operand Definition Table:
Operand | Possible Structure | Possible Formats | Referencing Permitted | Dynamic Definition | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operand1
|
C | S | A | G | N | A | U | N | P | I | F | B | D | T | L | C | G | yes | no |
Note:
When using the work file types ENTIRECONNECTION or
TRANSFER, operand1 may neither be of format C, nor
G.
Syntax Element Description:
Fields written with a WRITE WORK FILE
statement are
represented in the external file according to their internal definition. No
editing is performed on the field values.
For fields of format A and B, the number of bytes in the external file is the same as the internal length definition as defined in the Natural program. No editing is performed and a decimal point is not represented in the value.
For fields of format N, the number of bytes on the external file is the sum of internal positions before and after the decimal point. The decimal point is not represented on the external file.
For fields of format P, the number of bytes on the external file is the sum of positions before and after the decimal point, plus 1 for the sign, divided by 2, rounded upward to a full byte.
Note:
No format conversion is performed for fields that are written to a
work file.
Examples of Field Representation:
Field Definition | Output Record |
---|---|
#FIELD1 (A10) |
10 bytes |
#FIELD2 (B15) |
15 bytes |
#FIELD3 (N1.3) |
4 bytes |
#FIELD4 (N0.7) |
7 bytes |
#FIELD5 (P1.2) |
2 bytes |
#FIELD6 (P6.0) |
4 bytes |
Note:
When the Natural system functions
AVER
,
NAVER
,
SUM
or
TOTAL
for
numeric fields (format N or P) are written to a work file, the internal length
of these fields is increased by one digit (for example, SUM
of a
field of format P3 is increased to P4). This has to be taken into consideration
when reading the work file.
Work File Type | Handling |
---|---|
|
The work file types ASCII and
ASCII-COMPRESSED can handle dynamic and large variables with a
maximum field/record length of 32766 bytes.
|
|
The work file type SAG (binary)
cannot handle dynamic variables and will produce an error. It can, however,
handle large variables with a maximum field/record length of 32766
bytes.
|
|
The work file type
ENTIRECONNECTION cannot handle dynamic variables.
It can,
however, handle large variables with a maximum field/record length of
1073741824 bytes.
|
|
Large and dynamic variables can be written into work files or read
from work files using the two work file types For the work file type In the With the |
CSV |
The maximum field/record length is 32766 bytes for dynamic and large variables. Dynamic variables are supported. X-arrays are not allowed and will result in an error message. |
** Example 'WWFEX1': WRITE WORK FILE ************************************************************************ DEFINE DATA LOCAL 1 EMPLOY-VIEW VIEW OF EMPLOYEES 2 PERSONNEL-ID 2 NAME END-DEFINE * FIND EMPLOY-VIEW WITH CITY = 'LONDON' WRITE WORK FILE 1 PERSONNEL-ID NAME END-FIND * END