MOVE 指令 (COBOL)
MOVE 指令會將資料從儲存體的一個區域傳送至另一個區域。 無法縮寫關鍵字。
- 參照
- 有效的 z/OS® Debugger COBOL 參照。
- 文字
- 有效的 COBOL 文字。
使用注意事項
- 若為 Enterprise COBOL for z/OS 第 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 子句。 如需 DATE FORMAT 子句及其他條款 不再 的相關資訊,請參閱 Enterprise COBOL for z/OS Migration Guide 5.1 版。
- 如果
PLAYBACK ENABLE指令的DATA參數對現行編譯單元有效,則當您使用PLAYBACK指令重播記錄的陳述式時,可以使用MOVE指令。MOVE指令的目標必須是階段作業變數,而不是程式變數。 - 如果您要除錯最佳化 COBOL 程式,則只有在第一次輸入
SET WARNING OFF指令時,才能使用MOVE指令將值指派給程式變數。 - 如果您正在除錯使用
OPTIMIZE編譯器選項編譯的 COBOL 程式,則MOVE指令的兩個運算元都不能是最佳化工具捨棄的變數。 - 如果在具有英文字母或英數運算元的
MOVE指令中使用定義為「國家」的 COBOL 變數作為接收欄位,則在完成該移動之前,會將非「國家」的運算元轉換為 Unicode ,但「群組」項目除外。 - 如果在具有英文字母或英數運算元的
MOVE指令中使用定義為 UTF-8 的 COBOL 變數作為接收欄位, 在完成該移動之前,非 UTF-8 的運算元會轉換為 UTF-8 ,但「群組」項目除外。如需搭配使用 COBOL 變數與 MOVE 陳述式的相關資訊,請參閱 Enterprise COBOL for z/OS 語言參照 。
- 具有 N 或 NX 字首的文字一律視為「國家」資料,且只能移至其他「國家」 或 UTF-8 「資料項目」或「群組」項目。
- 具有 U 或 UX 字首的文字一律視為 UTF-8 資料,且只能移至其他 UTF-8 或國家資料項目或群組項目。
範例
- 將字串常數 "Hi There" 移至變數
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" - 指派給程式變數
c(在結構d中找到) ,程式變數a的值,在結構b中找到。
請注意此範例中使用的資格。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)
