Move Operations

The move operations are shown in the following table.

Table 1. Move Operations
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.