MOVE 指令 (COBOL)

MOVE 指令會將資料從儲存體的一個區域傳送至另一個區域。 無法縮寫關鍵字。

讀取語法圖跳過視覺化語法圖MOVE參照文字TO參照;
參照
有效的 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);

如需本主題所討論資料的相關資訊,請參閱下列主題。