基本移動とは、受け入れ項目が基本項目であり、送り出し項目が基本項目またはリテラルである場合の移動のことです。 移動時には、データの内部表現をある形式から別の形式に変換する処理が行われます (必要であれば)。 また、このときに、受け入れ項目内で指定された編集、または受け入れ項目によって暗黙指定された編集解除が実行されます。
編集解除とは、すべての編集文字を数字編集データ項目 から論理的に除去することです。これは、この項目の未編集数字値を決定するためです。
+----------------------------------IBM 拡張----------------------------------+
編集解除は、日時クラスにも起こります。 このケースでは、すべての分離文字と数字でない変換指定子はすべて日時項目から取り除かれ、結果として数字になります。
+------------------------------End of IBM 拡張-------------------------------+
各基本項目は次のカテゴリーの 1 つに属します。
+----------------------------------IBM 拡張----------------------------------+
+------------------------------End of IBM 拡張-------------------------------+
次の規則は、有効な基本移動を実行する場合の概略です。受け入れ項目別に示します。
+----------------------------------IBM 拡張----------------------------------+
+------------------------------End of IBM 拡張-------------------------------+
+----------------------------------IBM 拡張----------------------------------+
+------------------------------End of IBM 拡張-------------------------------+
+----------------------------------IBM 拡張----------------------------------+
+------------------------------End of IBM 拡張-------------------------------+
+----------------------------------IBM 拡張----------------------------------+
+------------------------------End of IBM 拡張-------------------------------+
+----------------------------------IBM 拡張----------------------------------+
たとえば、以下の MOVE を考えてみます。
77 external-float-1 PIC +9(3).9(13)E+9(3). MOVE +123455779012.3453E+297 to external-float-1. DISPLAY "EXTERNAL-FLOAT-1=" external-float-1.
MOVE の表示結果は次のとおりです。
EXTERNAL-FLOAT-1=+123.4557790123452E+306
+------------------------------End of IBM 拡張-------------------------------+
+----------------------------------IBM 拡張----------------------------------+
+------------------------------End of IBM 拡張-------------------------------+
+----------------------------------IBM 拡張----------------------------------+
+------------------------------End of IBM 拡張-------------------------------+
+----------------------------------IBM 拡張----------------------------------+
+------------------------------End of IBM 拡張-------------------------------+
+----------------------------------IBM 拡張----------------------------------+
国別データ項目は、英字、英数字、DBCS、または国別データ項目から、さらに、非数値、DBCS、または国別 16 進リテラル、あるいは表意定数 SPACE/SPACES からもデータを受け入れます。
このような項目に移動されたデータは、左端の文字位置に位置合わせされ、必要に応じて、右側が、切り捨てられるか、 あるいは埋め込み文字コンパイル・オプションまたは PROCESS ステートメントの NTLPADCHAR オプションに指定されている埋め込み文字によって埋められます。 PROCESS ステートメントについては、「WebSphere Development Studio: ILE COBOL プログラマーの手引き」を参照してください。
転送中のデータが国別データでない場合には、受け入れフィールドに置かれる前に、 データ変換規則に従って、送り出しフィールドの表記から変換されます。
データ変換は、ソースの Coded Character Set Identifier (CCSID) に定義されている各文字を、ターゲット CCSID にマッピングすることによって実行されます。 CCSID 13488 は、国別データ CCSID を定義するために使用されます。
他のデータ項目に関連する CCSID は、以下の規則によって決まります。
+------------------------------End of IBM 拡張-------------------------------+
表 30 に、各カテゴリーについての有効および無効な基本移動を示します。 表の中では、以下のように表記します。
送り出し項目の カテゴリー | 受け入れ項目のカテゴリー |
| |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
英字 |
英数字、 英数字編集項目 |
数字、 数字編集 | BOOLEAN (6) | DBCS (8) |
外部 浮動小数点 (6) |
内部 浮動小数点 (6) | 日付 (6) | 時刻 (6) | タイム・スタンプ (6) | 国別 (6) | |
英字および SPACE | 可 | 可 | 不可 | 不可 | 不可 | 不可 | 不可 | 不可 | 不可 | 不可 | 可 |
英数字(1) | 可 | 可 | 可 | 可(5) | 不可 | 可 (9) | 可 (9) | 可 | 可 | 可 | 可 |
英数字編集項目 | 可 | 可 | 不可 | 不可 | 不可 | 不可 | 不可 | 可 | 可 | 可 | 不可 |
数字の整数(2) | 不可 | 可 | 可 | 不可 | 不可 | 可 | 可 | 可 | 可 | 可 | 不可 |
数字非整数(3) | 不可 | 不可 | 可 | 不可 | 不可 | 可 | 可 | 不可 | 不可 | 不可 | 不可 |
数字編集 | 不可 | 可 | 可 | 不可 | 不可 | 可 | 可 | 可 | 可 | 可 | 不可 |
LOW/HIGH-VALUE、QUOTES | 不可 | 可 | 不可 | 不可 | 不可 | 不可 | 不可 | 不可 | 不可 | 不可 | 不可 |
ZERO | 不可 | 可 | 可 | 可 | 不可 | 可 | 可 | 不可 | 不可 | 不可 | 不可 |
ブール(4) (6) | 不可 | 可 | 不可 | 可 | 不可 | 不可 | 不可 | 不可 | 不可 | 不可 | 不可 |
DBCS (6) (7) (8) DBCS 編集 | 不可 | 不可 | 不可 | 不可 | 可 | 不可 | 不可 | 不可 | 不可 | 不可 | 可 |
浮動小数点 (10) | 不可 | 不可 | 可 | 不可 | 不可 | 可 | 可 | 不可 | 不可 | 不可 | 不可 |
日付 (6) | 不可 | 可 | 可 | 不可 | 不可 | 不可 | 不可 | 可 | 不可 | 可 | 不可 |
時刻 (6) | 不可 | 可 | 可 | 不可 | 不可 | 不可 | 不可 | 不可 | 可 | 可 | 不可 |
タイム・スタンプ (6) | 不可 | 可 | 可 | 不可 | 不可 | 不可 | 不可 | 可 | 可 | 可 | 不可 |
国別 (6) | 可 | 可 | 不可 | 不可 | 可 | 不可 | 不可 | 不可 | 不可 | 不可 | 可 |
表 30 の注
+----------------------------------IBM 拡張----------------------------------+
+------------------------------End of IBM 拡張-------------------------------+