MOVE 命令 (COBOL)

MOVE 命令将数据从一个存储区传输到另一个存储区。 关键字不能缩写。

读取语法图跳过可视语法图MOVE引用字面值TO引用;
参考
有效的 z/OS® Debugger COBOL 引用。
文字
有效的 COBOL 文字。

使用说明

  • 对于 Enterprise COBOL for z/OS V 5 ,可以使用 MOVE 命令来更新以下专用寄存器:
    JNIENVPTR
    SHIFT-IN
    SHIFT-OUT
    LINAGE-COUNTER of <FD>
  • 对于 Enterprise COBOL for z/OS 版本 5 ,可以使用 MOVE 命令来使用非数字字符更新数字类型。 例如: "Move "-999999909" to Znumed" ,其中 Znumed 定义为 "01 Znumed pic -9,999.909"。
  • 如果由于计算条件或注意中断而启动 z/OS Debugger ,那么使用赋值来设置变量可能不会产生预期结果。 这是由于语句中的变量值与语句边界上的变量值相比具有不确定性。
  • MOVE 仅将值分配给单个接收方; 与 COBOL 不同,不支持多个接收方变量。
  • 不支持 COBOL CORRESPONDING 短语。
  • MOVE 不支持日期窗口。 因此,不能使用 MOVE 命令将窗口日期字段的值分配给扩展日期字段或非日期字段。
  • 不能使用 MOVE 命令将一个扩展日期字段的值分配给另一个具有不同 DATE FORMAT 子句的扩展日期字段,也不能将一个窗口日期字段的值分配给另一个具有不同 DATE FORMAT 子句的窗口日期字段。

    Enterprise COBOL for z/OS 版本 5 编译器不支持 DATE FORMAT 子句。 可在 Enterprise COBOL for z/OS 迁移指南 V 5 Release 1 中找到有关 DATE FORMAT 子句和其他子句 不再 可用的其他信息。

  • 如果 PLAYBACK ENABLE 命令的 DATA 参数对当前编译单元有效,那么可以在使用 PLAYBACK 命令重放记录的语句时使用 MOVE 命令。 MOVE 命令的目标必须是会话变量,而不是程序变量。
  • 如果要调试优化的 COBOL 程序,那么仅当您首先输入 SET WARNING OFF 命令时,才能使用 MOVE 命令将值指定给程序变量。
  • 如果您正在调试使用 OPTIMIZE 编译器选项编译的 COBOL 程序,那么 MOVE 命令的两个操作数都不能是优化器废弃的变量。
  • 如果将定义为 "国家或地区" 的 COBOL 变量用作带有字母或字母数字操作数的 MOVE 命令中的接收字段,那么非 "国家或地区" 的操作数将在执行该移动之前转换为 Unicode (组项除外)。
  • 如果将定义为 UTF-8 的 COBOL 变量用作具有字母或字母数字操作数的 MOVE 命令中的接收字段, 在执行此移动之前,非 UTF-8 的操作数将转换为 UTF-8 (组项除外)。

    请参阅 Enterprise COBOL for z/OS Language Reference ,以获取有关将 COBOL 变量与 MOVE 语句配合使用的更多信息。

  • 具有 N 或 NX 前缀的字面值始终被视为 "国家" 数据,并且只能移动到其他 "国家" 或 UTF-8 数据项或组项。
  • 带有 U 或 UX 前缀的字面值始终被视为 UTF-8 数据,并且只能移动到其他 UTF-8 或国家数据项或组项。

示例

  • 将字符串常量 "Hi 那里" 移动到变量 field
    MOVE "Hi There" TO field;
  • 将会话变量 temp 的值移至变量 b
    MOVE temp TO b;
  • 要在当前编程语言为 COBOL 时为 DBCS 变量指定新值,请在 "命令/日志" 窗口中输入以下命令。
    MOVE G"D B C S  V A L U E"
  • 分配给在结构 d中找到的程序变量 c,在结构 b中找到的程序变量 a的值。
    MOVE a OF b TO c OF d;
    请注意此示例中使用的资格。
  • 将值 123 指定给 itm-2的第一个表元素。
    MOVE 123 TO itm-2(1,1);
  • 您还可以使用引用修改来为变量赋值,如以下两个示例中所示。
    MOVE aa(2:3) TO bb;
    MOVE aa TO bb(1:4);

请参阅以下主题,以获取与本主题中讨论的材料相关的更多信息。