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:
| Syntax Element | Description |
|---|---|
(r) |
Statement Reference:
The notation
If
|
operand1
|
Fields to Be Made Available:
As 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