MOVE (転送)

自由形式構文 (許可されていない - EVAL または EVALR 命令、 または %CHAR%DATE%DEC%DECH%GRAPH%INT%INTH%TIME%TIMESTAMP%UCS2%UNS、あるいは %UNSH などの組み込み関数を使用)
コード 演算項目 1 演算項目 2 結果フィールド 標識
MOVE(P) データ属性 ソース・フィールド ターゲット・フィールド + - ZB

MOVE 命令では、演算項目 2 から結果フィールドに文字が転送されます。転送は演算項目 2 の右端の文字から開始されます。

日付、時刻またはタイム・スタンプ・データを転送する 場合には、転送元または転送先が文字または数値フィールドのいずれかでない 限り、演算項目 1 はブランクでなければなりません。

そうでない場合には、演算項目 1 にこの命令の転送元または転送先の文字また は数値フィールドに対応する日付または時刻の形式が入ります。使用可能な形式に ついては、日付データ・タイプ時刻データ・タイプ、および タイム・スタンプ・データ・タイプを参照してください。

転送元または転送先が文字フィールドである場合、オプションで、 演算項目 1 内の形式の後に区切り記号を示すことができます。 ただし、その形式で有効な区切り記号だけを使用する ことができます。

演算項目 2 が *DATE または UDATE で、結果が日付フィールドである 場合、演算項目 1 は必要ありません。 演算項目 1 に日付形式が含まれている場合、演算項目 1 は、制御仕様書 の DATEDIT キーワードによって指定されている *DATE または UDATE の 形式と互換性を持っている必要があります。

文字データ、図形データ、UCS-2 データ、または 数値データを転送する場合に、演算項目 2 が結果フィールドより長い場合 には、演算項目 2 の左端の余分な文字または数字は 転送されません。結果フィールドが演算項目 2 より長い場合には、埋め込みが指定されていない限 り、結果フィールドの左端の余分な文字または数字は変更されません。

結果フィールドが配列の場合には、結果の標識を指定することはできません。 結果の標識を指定できるのは、結果フィールドが配列要素または配列以外の フィールドの場合です。

演算項目 2 が結果フィールドの長さより短い場合には、命令拡張桁に P を指定 することによって、転送後に結果フィールドの左側に埋め込みが行うことがで きます。

浮動数値フィールドおよびリテラルを、演算項目 2 または結果フィールドの 指定として使用することはできません。

モジュールについて CCSID(*GRAPH : IGNORE) が指定または想定されている 場合、UCS-2 データと図形データの間で MOVE 命令は使用できません。

可変長文字、図形、または UCS-2 データを 転送する場合は、可変長フィールドは、現在の長さが同じ固定長フィールドと まったく同様に機能します。MOVE 命令では、可変長結果フィールドの長さは変わりません。 例については、 図 図 5 から 図 10 を参照してください。 この例の GRAPHIC リテラルは、無効な GRAPHIC リテラルです。 詳しくは、グラフィック形式を参照してください。

例の後の表に、演算項目 2 から結果フィールドにどのようにデータが転送され るかを示します。 MOVE 命令の詳細については、移動命令または 変換命令を参照してください。

図 1. 日付の MOVE 命令
*...1....+....2....+....3....+....4....+....5....+....6....+....7....+....
 *  Control specification date format
H DATFMT(*ISO)
 *
DName++++++++++ETDsFrom+++To/L+++IDc.Functions+++++++++++++++++++++++++++
D DATE_ISO       S               D
D DATE_YMD       S               D   DATFMT(*YMD)
D                                    INZ(D'1992-03-24')
D DATE_EUR       S               D   DATFMT(*EUR)
D                                    INZ(D'2197-08-26')
D DATE_JIS       S               D   DATFMT(*JIS)
D NUM_DATE1      S              6P 0 INZ(210991)
D NUM_DATE2      S              7P 0
D CHAR_DATE      S              8    INZ('02/01/53')
D CHAR_LONGJUL   S              8A   INZ('2039/166')
D DATE_USA       S               D   DATFMT(*USA)
CL0N01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+H1LoEq..
 * Move between Date fields. DATE_EUR will contain 24.03.1992
 *
C                   MOVE      DATE_YMD      DATE_EUR
 *
 * Convert numeric value in ddmmyy format into a *ISO Date.
 * DATE_ISO will contain 1991-09-21 after each of the 2 moves.
C     *DMY          MOVE      210991        DATE_ISO
C     *DMY          MOVE      NUM_DATE1     DATE_ISO
 *
 * Move a character value representing a *MDY date to a *JIS Date.
 * DATE_JIS will contain 1953-02-01 after each of the 2 moves.
C     *MDY/         MOVE      '02/01/53'    DATE_JIS
C     *MDY/         MOVE      CHAR_DATE     DATE_JIS
 *
 *  Move a date field to a character field, using the
 *  date format and separators based on the job attributes
C     *JOBRUN       MOVE (P)  DATE_JIS      CHAR_DATE
 *
 *  Move a date field to a numeric field, using the
 *  date format based on the job attributes
 *
 *  Note:  If the job format happens to be *JUL, the date will
 *         be placed in the rightmost 5 digits of NUM_DATE1.
 *         The MOVEL operation might be a better choice.
 *
C     *JOBRUN       MOVE (P)  DATE_JIS      NUM_DATE1
 *
 *  DATE_USA will contain 12-31-9999
C                   MOVE      *HIVAL        DATE_USA
 *
 *  Execution error, resulting in error code 114.  Year is not in
 *  1940-2039 date range.  DATE_YMD will be unchanged.
C                   MOVE      DATE_USA      DATE_YMD
 *
 *  Move a *EUR date field to a numeric field that will
 *  represent a *CMDY date.  NUM_DATE2 will contain 2082697
 *  after the move.
C     *CMDY         MOVE      DATE_EUR      NUM_DATE2
 *
 *  Move a character value representing a *LONGJUL date to
 *  a *YMD date.  DATE_YMD will be 39/06/15 after the move.
C     *LONGJUL      MOVE      CHAR_LONGJUL  DATE_YMD
図 2. 区切り記号を使用しない 日付と時刻の MOVE 命令
*...1....+....2....+....3....+....4....+....5....+....6....+....7....+....
 *  Specify default format for date fields
H DATFMT(*ISO)
DName++++++++++ETDsFrom+++To/L+++IDc.Functions+++++++++++++++++++++++++++
D date_USA       S               D   DATFMT(*USA)
D datefld        S               D
D timefld        S               T   INZ(T'14.23.10')
D chr_dateA      S              6    INZ('041596')
D chr_dateB      S              7    INZ('0610807')
D chr_time       S              6
CL0N01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+H1LoEq..
 * Move a character value representing a *MDY date to a D(Date) value.
 * *MDY0 indicates that the character date in Factor 2 does not
 * contain separators.
 * datefld will contain 1996-04-15 after the move.
C     *MDY0         MOVE      chr_dateA     datefld
 * Move a field containing a T(Time) value to a character value in the
 * *EUR format.  *EUR0 indicates that the result field should not
 * contain separators.
 * chr_time will contain '142310' after the move.
C     *EUR0         MOVE      timefld       chr_time
 * Move a character value representing a *CYMD date to a *USA
 * Date. Date_USA will contain 08/07/1961 after the move.
 * 0 in *CYMD indicates that the character value does not
 * contain separators.
C     *CYMD0        MOVE      chr_dateB     date_USA
図 3. タイム・スタンプを使用した MOVE 命令
*...1....+....2....+....3....+....4....+....5....+....6....+....7....+....
 *  Control specification DATEDIT format
 *
H DATEDIT(*MDY)
 *
DName+++++++++++ETDsFrom+++To/L+++IDc.Functions+++++++++++++++++++++++
D Jobstart        S               Z
D Datestart       S               D
D Timestart       S               T
D Timebegin       S               T   inz(T'05.02.23')
D Datebegin       S               D   inz(D'1991-09-24')
D TmStamp         S               Z   inz
 *
 * Set the timestamp Jobstart with the job start Date and Time
 *
 * Factor 1 of the MOVE *DATE (*USA = MMDDYYYY) is consistent
 * with the value specified for the DATEDIT keyword on the
 * control specification, since DATEDIT(*MDY) indicates that
 * *DATE is formatted as MMDDYYYY.
 *
 * Note:   It is not necessary to specify factor 1 with *DATE or
 *         UDATE.
 *
CL0N01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+HiLoEq..
C     *USA          MOVE      *DATE         Datestart
C                   TIME                    StrTime           6 0
C     *HMS          MOVE      StrTime       Timestart
C                   MOVE      Datestart     Jobstart
C                   MOVE      Timestart     Jobstart
 *
 * After the following C specifications are performed, the field
 * stampchar will contain '1991-10-24-05.17.23.000000'.
 *
 * First assign a timestamp the value of a given time+15 minutes and
 * given date + 30 days. Move tmstamp to a character field.
 * stampchar will contain '1991-10-24-05.17.23.000000'.
 *
C                   ADDDUR    15:*minutes   Timebegin
C                   ADDDUR    30:*days      Datebegin
C                   MOVE      Timebegin     TmStamp
C                   MOVE      Datebegin     TmStamp
C                   MOVE      TmStamp       stampchar        26
 * Move the timestamp to a character field without separators. After
 * the move, STAMPCHAR will contain '      19911024051723000000'.
C     *ISO0         MOVE(P)   TMSTAMP       STAMPCHAR0
図 4. 文字と図形フィールドの間の MOVE
*...1....+....2....+....3....+....4....+....5....+....6....+....7....+....
DName++++++++++ETDsFrom+++To/L+++IDc.Functions+++++++++++++++++++
 *
 * Example of MOVE between graphic and character fields
 *
D char_fld1      S             10A   inz('oK1K2K3  i')
D dbcs_fld1      S              4G
D char_fld2      S             10A   inz(*ALL'Z')
D dbcs_fld2      S              3G   inz(G'oK1K2K3i')
 *
 *
CL0N01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+HiL
 *
 * Value of dbcs_fld1 after MOVE operation is 'K1K2K3  '
 * Value of char_fld2 after MOVE oepration is 'ZZoK1K2K3i'
 *
C                   MOVE      char_fld1     dbcs_fld1
C                   MOVE      dbcs_fld2     char_fld2
図 5. 可変長フィールドから 可変長フィールドへの MOVE
*...1....+....2....+....3....+....4....+....5....+....6....+....7....+....
DName++++++++++ETDsFrom+++To/L+++IDc.Functions+++++++++++++++++++
 *
 * Example of MOVE from variable to variable length
 * for character fields
 *
D var5a          S              5A   INZ('ABCDE') VARYING
D var5b          S              5A   INZ('ABCDE') VARYING
D var5c          S              5A   INZ('ABCDE') VARYING
D var10a         S             10A   INZ('0123456789') VARYING
D var10b         S             10A   INZ('ZXCVBNM') VARYING
D var15a         S             15A   INZ('FGH') VARYING
D var15b         S             15A   INZ('FGH') VARYING
D var15c         S             15A   INZ('QWERTYUIOPAS') VARYING
 *
 *
CL0N01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+HiL
 *
C                   MOVE      var15a        var5a
 * var5a = 'ABFGH' (長さ =5)
C                   MOVE      var10a        var5b
 * var5b = '56789' (長さ =5)
C                   MOVE      var5c         var15a
 * var15a = 'CDE' (長さ =3)
C                   MOVE      var10b        var15b
 * var15b = 'BNM' (長さ =3)
C                   MOVE      var15c        var10b
 * var10b = 'YUIOPAS' (長さ =7)
図 6. 可変長フィールドから 固定長フィールドへの MOVE
*...1....+....2....+....3....+....4....+....5....+....6....+....7....+....
DName++++++++++ETDsFrom+++To/L+++IDc.Functions+++++++++++++++++++
 *
 * Example of MOVE from variable to fixed length
 * for character fields
 *
D var5           S              5A   INZ('ABCDE') VARYING
D var10          S             10A   INZ('0123456789') VARYING
D var15          S             15A   INZ('FGH') VARYING
D fix5a          S              5A   INZ('MNOPQ')
D fix5b          S              5A   INZ('MNOPQ')
D fix5c          S              5A   INZ('MNOPQ')             
 *
 *
CL0N01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+HiL
 *
C                   MOVE      var5          fix5a
 * fix5a = 'ABCDE'
C                   MOVE      var10         fix5b
 * fix5b = '56789'
C                   MOVE      var15         fix5c
 * fix5c = 'MNFGH'
図 7. 固定長フィールドから 可変長フィールドへの MOVE
*...1....+....2....+....3....+....4....+....5....+....6....+....7....+....
DName++++++++++ETDsFrom+++To/L+++IDc.Functions+++++++++++++++++++
 *
 * Example of MOVE from fixed to variable length
 * for character fields
 *
D var5           S              5A   INZ('ABCDE') VARYING
D var10          S             10A   INZ('0123456789') VARYING
D var15          S             15A   INZ('FGHIJKL') VARYING
D fix5           S              5A   INZ('.....')
D fix10          S             10A   INZ('PQRSTUVWXY')        
 *
 *
CL0N01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+HiL
 *
C                   MOVE      fix10         var5
 * var5 = 'UVWXY' (長さ =5)
C                   MOVE      fix5          var10
 * var10 = '01234.....' (長さ =10)
C                   MOVE      fix10         var15
 * var15 = 'STUVWXY' (長さ =7)
図 8. 可変長フィールドから 可変長フィールドへの MOVE(P)
*...1....+....2....+....3....+....4....+....5....+....6....+....7....+....
DName++++++++++ETDsFrom+++To/L+++IDc.Functions+++++++++++++++++++
 *
 * Example of MOVE(P) from variable to variable length
 * for character fields
 *
D var5a          S              5A   INZ('ABCDE') VARYING
D var5b          S              5A   INZ('ABCDE') VARYING
D var5c          S              5A   INZ('ABCDE') VARYING
D var10          S             10A   INZ('0123456789') VARYING
D var15a         S             15A   INZ('FGH') VARYING
D var15b         S             15A   INZ('FGH') VARYING
D var15c         S             15A   INZ('FGH') VARYING
 *
 *
CL0N01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+HiL
 *
C                   MOVE(P)   var15a        var5a
 * var5a = '  FGH' (長さ =5)
C                   MOVE(P)   var10         var5b
 * var5b = '56789' (長さ =5)
C                   MOVE(P)   var5c         var15b
 * var15b = 'CDE' (長さ =3)
C                   MOVE(P)   var10         var15c
 * var15c = '789' (長さ =3)
図 9. 可変長フィールドから 固定長フィールドへの MOVE(P)
*...1....+....2....+....3....+....4....+....5....+....6....+....7....+....
DName++++++++++ETDsFrom+++To/L+++IDc.Functions+++++++++++++++++++
 *
 * Example of MOVE(P) from variable to fixed length
 * for character fields
 *
D var5           S              5A   INZ('ABCDE') VARYING
D var10          S             10A   INZ('0123456789') VARYING
D var15          S             15A   INZ('FGH') VARYING
D fix5a          S              5A   INZ('MNOPQ')
D fix5b          S              5A   INZ('MNOPQ')
D fix5c          S              5A   INZ('MNOPQ')             
 *
 *
CL0N01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+HiL
 *
C                   MOVE(P)   var5          fix5a
 * fix5a = 'ABCDE'
C                   MOVE(P)   var10         fix5b
 * fix5b = '56789'
C                   MOVE(P)   var15         fix5c
 * fix5c = '  FGH'
図 10. 固定長フィールドから 可変長フィールドへの MOVE(P)
*...1....+....2....+....3....+....4....+....5....+....6....+....7....+....
DName++++++++++ETDsFrom+++To/L+++IDc.Functions+++++++++++++++++++
 *
 * Example of MOVE(P) from fixed to variable length
 * for character fields
 *
D var5           S              5A   INZ('ABCDE') VARYING
D var10          S             10A   INZ('0123456789') VARYING
D var15a         S             15A   INZ('FGHIJKLMNOPQR') VARYING
D var15b         S             15A   INZ('FGHIJ') VARYING
D fix5           S              5A   INZ('')
D fix10          S             10A   INZ('PQRSTUVWXY')        
 *
 *
CL0N01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+HiL
 *
C                   MOVE(P)   fix10         var5
 * var5 = 'UVWXY' (長さ =5 前と後)
C                   MOVE(P)   fix10         var10
 * var10 = 'PQRSTUVWXY' (長さ =10 前と後)
C                   MOVE(P)   fix10         var15a
 * var15a = '   PQRSTUVWXY' (長さ =13 前と後)
C                   MOVE(P)   fix10         var15b
 * var15b = 'UVWXY' (長さ =5 前と後)
表 1. 日付時刻フィールドへの文字フィールドの転送. 演算項目 1 は演算項目 2 の指定の形式を示します。

演算項目 1
記入

演算項目 2
(文字)

結果フィールド
DTZ タイプ
*MDY- 11-19-75 75/323 D(*JUL)
*JUL 92/114 23/04/92 D(*DMY)
*YMD 14/01/28 01/28/2014 D(*USA)
*YMD0 140128 01/28/2014 D(*USA)
*USA 12/31/9999 31.12.9999 D(*EUR)
*ISO 2036-05-21 21/05/36 D(*DMY)
*JUL 45/333 11/29/1945 D(*USA)
*MDY/ 03/05/33 03.05.33 D(*MDY.)
*CYMD& 121 07 08 08.07.2021 D(*EUR)
*CYMD0 1210708 07,08,21 D(*MDY,)
*CMDY. 107.08.21 21-07-08 D(*YMD-)
*CDMY0 1080721 07/08/2021 D(*USA)
*LONGJUL- 2021-189 08/07/2021 D(*EUR)
*HMS& 23 12 56 23.12.56 T(*ISO)
*USA 1:00 PM 13.00.00 T(*EUR)
*EUR 11.10.07 11:10:07 T(*JIS)
*JIS 14:16:18 14.16.18 T(*HMS.)
*ISO 24.00.00 12:00 AM T(*USA)
ブランク 1991-09-14-13.12.56.123456 1991-09-14-13.12.56.123456 Z(*ISO)
*ISO 1991-09-14-13.12.56.123456 1991-09-14-13.12.56.123456 Z(*ISO)
表 2. 日付時刻フィールドへの数値フィールドの転送. 演算項目 1 は演算項目 2 の指定の形式を示します。

演算項目 1
記入1

演算項目 2
(数値)

結果フィールド
DTZ タイプ
*MDY 111975 75/323 D(*JUL)
*JUL 92114 23/04/92 D(*DMY)
*YMD 140128 01/28/2014 D(*USA)
*USA2 12319999 31.12.9999 D(*EUR)
*ISO 20360521 21/05/36 D(*DMY)
*JUL 45333 11/29/1945 D(*USA)
*MDY 030533 03.05.33 D(*MDY.)
*CYMD 1210708 08.07.2021 D(*EUR)
*CMDY 1070821 21-07-08 D(*YMD-)
*CDMY 1080721 07/08/2021 D(*USA)
*LONGJUL 2021189 08/07/2021 D(*EUR)
*USA *DATE (092195)3 1995-09-21 D(*JIS)
ブランク *DATE (092195)3 1995-09-21 D(*JIS)
*MDY UDATE (092195)3 21.09.1995 D(*EUR)
*HMS 231256 23.12.56 T(*ISO)
*EUR 111007 11:10:07 T(*JIS)
*JIS 141618 14.16.18 T(*HMS.)
*ISO 240000 12:00 AM T(*USA)
ブランク4 19910914131256123456 1991-09-14-13.12.56.123456 Z(*ISO)
注:
  1. 区切り記号のゼロ (0) は、演算項目 1 で、日付、時刻、または タイム・スタンプ・フィールドと数値クラスの間の転送には使用することはできません。
  2. 時刻の形式 *USA は、時刻と数値クラスの間の転送には使用することがで きません。
  3. *DATE および UDATE の場合には、ジョブ記述のジョブ日付は *MDY 形式で 092195 が入っていると見なされます。 演算項目 1 は、オプションであり、正しい形式にデフォルト指定されます。 演算項目 2 が *DATE で、演算項目 1 がコーディングされている場合、 演算項目 1 は 4 桁の年の日付形式でなければなりません。演算項目 2 が UDATE で、演算項目 1 がコーディングされている場合、 演算項目 1 は 2 桁の年の日付形式でなければなりません。
  4. タイム・スタンプ・フィールドの転送の場合、演算項目 1 はオプションです。 演算項目 1 は、コーディングされる場合、*ISO または *ISO0 でなければなり ません。
表 3. 文字フィールドへの日付/時刻フィールドの転送

演算項目 1
記入

演算項目 2

結果フィールド
(文字)

DTZ タイプ
*JUL 11-19-75 D(*MDY-) 75/323
*DMY- 92/114 D(*JUL) 23-04-92
*USA 14/01/28 D(*YMD) 01/28/2014
*EUR 12/31/9999 D(*USA) 31.12.9999
*DMY, 2036-05-21 D(*ISO) 21,05,36
*USA 45/333 D(*JUL) 11/29/1945
*USA0 45/333 D(*JUL) 11291945
*MDY& 03/05/33 D(*MDY) 03 05 33
*CYMD, 03 07 08 D(*MDY&); 108,03,07
*CYMD0 21/07/08 D(*DMY) 1080721
*CMDY 21-07-08 D(*YMD-) 107/08/21
*CDMY- 07/08/2021 D(*USA) 108-07-21
*LONGJUL& 08/07/2021 D(*EUR) 2021 189
*ISO 23 12 56 T(*HMS&); 23.12.56
*EUR 11:00 AM T(*USA) 11.00.00
*JIS 11.10.07 T(*EUR) 11:10:07
*HMS, 14:16:18 T(*JIS) 14,16,18
*USA 24.00.00 T(*ISO) 12:00 AM
ブランク 2045-10-27-23.34.59.123456 Z(*ISO) 2045-10-27-23.34.59.123456
表 4. 数値フィールドへの日付時刻フィールドの転送

演算項目 1
記入

演算項目 2

結果フィールド
(数値)

DTZ タイプ
*JUL 11-19-75 D(*MDY-) 75323
*DMY- 92/114 D(*JUL) 230492
*USA 14/01/28 D(*YMD) 01282014
*EUR 12/31/9999 D(*USA) 31129999
*DMY, 2036-05-21 D(*ISO) 210536
*USA 45/333 D(*JUL) 11291945
*MDY& 03/05/33 D(*MDY) 030533
*CYMD, 03 07 08 D(*MDY&); 1080307
*CMDY 21-07-08 D(*YMD-) 1070821
*CDMY- 07/08/2021 D(*USA) 1080721
*LONGJUL& 08/07/2021 D(*EUR) 2021189
*ISO 23 12 56 T(*HMS&); 231256
*EUR 11:00 AM T(*USA) 110000
*JIS 11.10.07 T(*EUR) 111007
*HMS, 14:16:18 T(*JIS) 141618
*ISO 2045-10-27-23.34.59.123456 Z(*ISO) 20451027233459123456
表 5. 日付時刻フィールドへの日付時刻フィールドの転送. タイム・スタンプの初期値が 1985-12-03-14.23.34.123456 で あるとします。
演算項目 1 演算項目 2 結果フィールド
DTZ タイプ DTZ タイプ
N/A 1986-06-24 D(*ISO) 86/06/24 D(*YMD)
N/A 23 07 12 D(*DMY&); 23.07.2012 D(*EUR)
N/A 11:53 PM T(USA) 23.53.00 T(*EUR)
N/A 19.59.59 T(*HMS.) 19:59:59 T(*JIS)
N/A 1985-12-03-14.23.34.123456 Z(*ISO.) 1985-12-03-14.23.34.123456 Z(*ISO)
N/A 75.06.30 D(*YMD.) 1975-06-30-14.23.34.123456 Z(*ISO)
N/A 09/23/2234 D(*USA) 2234-09-23-14.23.34.123456 Z(*ISO)
N/A 18,45,59 T(*HMS,) 1985-12-03-18.45.59.000000 Z(*ISO)
N/A 2:00 PM T(*USA) 1985-12-03-14.00.00.000000 Z(*ISO)
N/A 1985-12-03-14.23.34.123456 Z(*ISO.) 12/03/85 D(*MDY)
N/A 1985-12-03-14.23.34.123456 Z(*ISO.) 12/03/1985 D(*USA)
N/A 1985-12-03-14.23.34.123456 Z(*ISO.) 14:23:34 T(*HMS)
N/A 1985-12-03-14.23.34.123456 Z(*ISO.) 02:23 PM T(*USA)
表 6. 文字フィールドへの日付フィールドの転送. 結果のフィールドが演算項目 2 より大きい。演算項目 1 に *ISO が 入っていて、結果のフィールドが次のように定義されているとします。
D     Result_Fld        20A   INZ('ABCDEFGHIJabcdefghij')

演算
コード

演算項目 2

結果フィールドの値
(移動命令の後の)

DTZ タイプ
MOVE 11 19 75 D(*MDY&); 'ABCDEFGHIJ1975-11-19'
MOVE(P) 11 19 75 D(*MDY&); '1975-11-19 '
MOVEL 11 19 75 D(*MDY&); '1975-11-19abcdefghij'
MOVEL(P) 11 19 75 D(MDY&); '1975-11-19 '
表 7. 数値フィールドへの時刻フィールドの転送. 結果のフィールドが演算項目 2 より大きい。演算項目 1 に *ISO が 入っていて、結果のフィールドが次のように定義されているとします。
D     Result_Fld        20S   INZ(11111111111111111111)

演算
コード

演算項目 2

結果フィールドの値
(移動命令の後の)

DTZ タイプ
MOVE 9:42 PM T(*USA) 11111111111111214200
MOVE(P) 9:42 PM T(*USA) 00000000000000214200
MOVEL 9:42 PM T(*USA) 21420011111111111111
MOVEL(P) 9:42 PM T(*USA) 21420000000000000000
表 8. 時刻フィールドへの数値フィールドの転送. 演算項目 2 が結果のフィールドより大きい。 強調表示されている部分は、演算項目 2 フィールドの転送される部分を示しま す。

演算
コード

演算項目 2 結果フィールド
DTZ タイプ
MOVE 11:12:13:14 T(*EUR) 12.13.14
MOVEL 11:12:13:14 T(*EUR) 11.12.13
表 9. タイム・スタンプ・フィールドへの数値フィールドの転送. 演算項目 2 が結果のフィールドより大きい。 強調表示されている部分は、演算項目 2 フィールドの転送される部分を示しま す。

演算
コード

演算項目 2 結果フィールド
DTZ タイプ
MOVE 12340618230323123420123456 Z(*ISO) 1823-03-23-12.34.20.123456
MOVEL 12340618230323123420123456 Z(*ISO) 1234-06-18-23.03.23.123420
図 11. MOVE 命令