GET SAME [(r)]
|
GET SAME [(r)]
[operand1
]
|
This document covers the following topics:
For an explanation of the symbols used in the syntax diagram, see Syntax Symbols.
Related Statements: ACCEPT/REJECT | AT BREAK | AT START OF DATA | AT END OF DATA | BACKOUT TRANSACTION | BEFORE BREAK PROCESSING | DELETE | END TRANSACTION | FIND | GET | GET TRANSACTION DATA | HISTOGRAM | LIMIT | PASSW | PERFORM BREAK PROCESSING | READ | RETRY | STORE | UPDATE
Belongs to Function Group: Database Access and Update
The GET SAME
statement is used to re-read the record
currently being processed. It is most frequently used to obtain database array
values (periodic groups or multiple-value fields) if the number and range of
existing or desired occurrences was not known when the record was initially
read.
GET SAME
is only valid for Natural users who are using
Adabas or VSAM.
GET SAME
cannot be used with Entire System Server.
For VSAM databases, GET SAME
can only be applied to ESDS
and RRDS. For ESDS, the RBA must be contained in a user-defined variable
(numeric format) or be specified as an integer constant. The same applies to
RRDS, except that the RRN must be provided instead of the RBA.
An UPDATE
or
DELETE
statement must not
reference a GET SAME
statement. These statements should instead
make reference to the FIND
,
READ
or
GET
statement used to read the
record initially.
Operand Definition Table:
Operand | Possible Structure | Possible Formats | Referencing Permitted | Dynamic Definition | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operand1 | S | A | A | U | N | P | B | no | yes |
Syntax Element Description:
( r) |
Statement Reference:
The notation
If
|
---|---|
operand1 |
Fields to Be Made Available:
As operand1, you specify the field(s) to
be made available as a result of the Note: |
** Example 'GSAEX1': GET SAME ************************************************************************ DEFINE DATA LOCAL 1 I (P3) 1 POST-ADDRESS VIEW OF EMPLOYEES 2 FIRST-NAME 2 NAME 2 ADDRESS-LINE (I:I) 2 C*ADDRESS-LINE 2 POST-CODE 2 CITY * 1 #NAME (A30) END-DEFINE * FORMAT PS=20 MOVE 1 TO I * READ (10) POST-ADDRESS BY NAME COMPRESS NAME FIRST-NAME INTO #NAME WITH DELIMITER ',' WRITE // 12T #NAME WRITE / 12T ADDRESS-LINE (I.1) /* IF C*ADDRESS-LINE > 1 FOR I = 2 TO C*ADDRESS-LINE GET SAME /* READ NEXT OCCURRENCE WRITE 12T ADDRESS-LINE (I.1) END-FOR END-IF WRITE / POST-CODE CITY SKIP 3 END-READ END
Page 1 05-01-13 13:23:36 ABELLAN,KEPA CASTELAN 23-C 28014 MADRID ACHIESON,ROBERT 144 ALLESTREE LANE DERBY DERBYSHIRE DE3 4TR DERBY