Use the UNSTRING statement to split a sending field into several
receiving fields. One UNSTRING statement can take the place of several MOVE statements.
In the UNSTRING statement you can specify:
- Delimiters that, when one of them is encountered in the sending
field, cause the current receiving field to stop receiving and the
next, if any, to begin receiving (DELIMITED BY phrase)
- A field for the delimiter that, when encountered in the
sending field, causes the current receiving field to stop receiving
(DELIMITER IN phrase)
- An integer data item that stores the number of characters
placed in the current receiving field (COUNT IN phrase)
- An integer data item that indicates the leftmost
character position within the sending field at which UNSTRING processing should begin (WITH POINTER phrase)
- An integer data item that stores a tally of the number of
receiving fields that are acted on (TALLYING IN phrase)
- Action to be taken if all of the receiving fields are filled
before the end of the sending data item is reached (ON OVERFLOW phrase)
The sending data item and the delimiters in the DELIMITED BY phrase must be of category alphabetic,
alphanumeric, alphanumeric-edited, DBCS, national, or
national-edited.
Receiving data items can be of category alphabetic,
alphanumeric, numeric, DBCS, or national. If numeric, a receiving
data item must be zoned decimal or national decimal. If a receiving
data item has:
- USAGE DISPLAY, the sending item and each delimiter item in
the statement must have USAGE DISPLAY, and each literal in the statement must be
alphanumeric
- USAGE NATIONAL, the sending item and each delimiter item
in the statement must have USAGE NATIONAL, and each literal in the statement must be
national
- USAGE DISPLAY-1, the sending item and each delimiter item
in the statement must have USAGE DISPLAY-1, and each literal in the statement must be
DBCS
Example: UNSTRING statement