Move Operations
The move operations are shown in the following table.
Operation | Traditional Syntax | Free-Form Syntax |
---|---|---|
Move | MOVE (Move) | EVALR (Evaluate expression, right adjust) or conversion built-in functions |
Move an Array | MOVEA (Move Array) | (not allowed) |
Move Left | MOVEL (Move Left) | EVAL (Evaluate expression) or conversionbuilt-in functions |
Move operations transfer all or part of factor 2 to the result field. Factor 2 remains unchanged.
The source and target of the move operation can be of the same or different
types, but some restrictions apply:
- For pointer moves, source and target must be the same type, either both basing pointers or both procedure pointers.
- When using MOVEA, both the source and target must be of the same type.
- MOVEA is not allowed for Date, Time or Timestamp fields.
- MOVE and MOVEL are not allowed for float fields or literals.
Resulting indicators can be specified only for character, graphic, UCS-2, and numeric result fields. For the MOVE and MOVEL operations, resulting indicators are not allowed if the result field is an unindexed array. For MOVEA, resulting indicators are not allowed if the result field is an array, regardless of whether or not it is indexed.
The P operation extender can only be specified if the result field is character, graphic, UCS-2, or numeric.