MOVE 命令 (COBOL)
MOVE 命令将数据从一个存储区传输到另一个存储区。 关键字不能缩写。
- 参考
- 有效的 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);
请参阅以下主题,以获取与本主题中讨论的材料相关的更多信息。
- 相关任务
- Enterprise COBOL for z/OS 编程指南
- 相关参考
- MOVE 命令允许的移动 (COBOL)
- SET WARNING 命令 (C , C++ , COBOL 和 PL/I)
