!--a11y-->

組込 ABAP データ型は 10 あります。これらの基本データ型の間では、100 種類の組合せが可能です。ABAP では、相互変換が不可能なデータ型 D ( 日付) および T ( 時刻) の項目を除き、データ型の組合せに対し、自動的なデータ型変換および長さ調整がサポートされています。
下記の変換表には、ソース項目と対象項目で可能なすべての組合せについて、以下の基本データ型の変換ルールが定義されています。
C D F I N P STRING T X XSTRING
ソースデータ型 C の変換表
|
対象 |
変換 |
|
C |
対象項目は左から右に入力されます。対象項目は長すぎる場合、右から空白が埋められます。短すぎる場合は、内容が右から切詰められます。 |
|
D |
文字項目には、8 文字の日付が YYYYMMDD の書式で格納されていなければなりません。 |
|
F |
ソース項目の内容は、リテラルでの記述どおり、型 F の有効な表現でなければなりません。 |
|
N |
ソース項目の数値だけがコピーされます。対象項目は右寄せされ、後続のゼロが埋められます。 |
|
I 、P |
ソース項目には、10 進数の表現がなければなりません。つまり、オプションの符号を伴い、小数点が最大 1 つの数値列です。ソース項目に空白を含めることができます。対象項目が短すぎる場合、オーバーフローが発生することがあります。これにより、プログラムの強制終了が発生する可能性があります。 |
|
STRING |
ソース項目の占有長がコピーされます。後続の空白はすべて切詰められます。 |
|
T |
文字項目には、6 文字の時刻が HHMMSS の書式で格納されていなければなりません。 |
|
X |
この文字項目には 16 進文字列が格納されていなければならないので、有効な文字は 0 、1 、2 、3 、4 、5 、6 、7 、8 、9 、A 、B 、C 、D 、E 、および F だけになります。この文字列は、16 進数としてパックされ、左寄せで転送されてから、右側にゼロが埋められるか、または右側で切詰められます。 |
|
XSTRING |
対象項目がゼロで埋められない点を除き、データ型 X の項目 と同様です。 |
ソースデータ型 D の変換表
|
対象 |
変換 |
|
C |
日付は変換されずに左寄せで転送されます。 |
|
D |
変換されずに転送されます。 |
|
F |
日付はパック数値に変換されます。次に、パック数値が浮動小数点形式の値に変換されます ( 該当する表を参照してください) 。 |
|
N |
日付は変換されずに左寄せで転送され、必要に応じて、右側にゼロが埋められます。 |
|
I 、P |
日付は、0001/01/01 以降の日数に変換されます。 |
|
STRING |
日付は、文字項目に変換されてから文字列に変換されます。 |
|
T |
サポートされていません。構文チェックでエラーメッセージが表示されるか、または実行時エラーが発生します。 |
|
X |
日付は、16 進書式で 0001/01/01 以降の日数に変換されます。 |
|
XSTRING |
有効なバイトだけがコピーされる点を除き、データ型 X の項目 と同様です。 |
ソースデータ型 F の変換表
|
対象 |
変換 |
|
C |
浮動小数点形式の値は、<mantissa>E<exponent> 書式に変換され、文字項目に転送されます。仮数 (<mantissa>) の値範囲は、数値がゼロでなければ 1 から 10 になります。指数 (<exponent>) には常に符号が付きます。対象項目が短すぎる場合、仮数が丸められます。文字項目の長さは、最低 6 バイトでなければなりません。 |
|
D |
ソース項目はパック数値に変換されます。次に、パック数値が日付項目に変換されます ( 該当する表を参照してください) 。 |
|
F |
変換されずに転送されます。 |
|
N |
ソース項目はパック数値に変換されます。次に、パック数値が数値テキスト項目に変換されます ( 該当する表を参照してください) 。 |
|
I 、P |
浮動小数点形式の値は整数値または固定小数点値に変換され、必要に応じて丸められます。 |
|
STRING |
仮数に最大桁数が使用される点 ( 最大精度) を除き、型 C の項目と同様です。それにもかかわらず、符号または指数が異なると、文字列長が変化する場合があります。 |
|
T |
ソース項目はパック数値に変換されます。次に、パック数値が時刻項目に変換されます ( 該当する表を参照してください) 。 |
|
X |
ソース項目はパック数値に変換されます。次に、パック数値が 16 進数に変換されます ( 該当する表を参照してください) 。 |
|
XSTRING |
先行ゼロがコピーされない点を除き、データ型 X の項目と同様です。 |
型 I は、小数点以下桁数を除き、常に型P と同様に処理されます。型 P が言及されるときは、必ず同じ内容が型 I 項目にも適用されます。
ソースデータ型 N の変換表
|
対象 |
変換 |
|
C |
数値項目は文字項目と同様に扱われます。先行ゼロは保持されます。 |
|
D |
数値項目は文字項目に変換されます。次に、文字項目が日付項目に変換されます ( 該当する表を参照してください) 。 |
|
F |
数値項目はパック数値に変換されます。次に、パック数値が浮動小数点形式の値に変換されます ( 該当する表を参照してください) 。 |
|
N |
数値項目は右寄せで転送され、左側にゼロが埋められるか、または左側で切詰められます。 |
|
I 、P |
数値項目は数値として解釈されて対象項目に転送され、そこで右寄せされてプラス符号が採用されます。対象項目が短すぎる場合、プログラムは強制終了する可能性があります。 |
|
STRING |
型 C の項目と同様です。文字列長は数値テキスト長と一致します。 |
|
T |
数値項目は文字項目に変換されます。次に、文字項目が時刻項目に変換されます ( 該当する表を参照してください) 。 |
|
X |
数値項目はパック数値に変換されます。次に、パック数値が 16 進数に変換されます ( 該当する表を参照してください) 。 |
|
XSTRING |
先行ゼロがコピーされない点を除き、型 X の項目と同様です。 |
プログラム属性固定小数点演算を設定していると、型 P の項目は、小数点以下桁数にしたがって丸められるか、またはゼロで埋められます。
ソースデータ型 P の変換表
|
対象 |
変換 |
|
C |
パック項目は文字項目に右寄せで転送されます。その際、必要に応じて小数点も転送されます。最終桁は符号のために予約されています。先行ゼロは空白として表示されます。対象項目が短すぎる場合、正の数値の符号は省略されます。それでも不十分な場合は、項目の左側が切詰められます。ABAP では、切詰をアスタリスク (*) で示します。文字項目に先行ゼロを表示する場合は、MOVE の代わりに UNPACK を使用します。 |
|
D |
パック項目値は 0001/01/01 以降の日数を表し、YYYYMMDD 書式で日付に変換されます。 |
|
F |
パック項目は、浮動小数点形式の値として受入および転送されます。 |
|
N |
パック項目は必要に応じて丸められ、アンパックされてから右寄せで転送されます。符号は省略されます。必要に応じて、対象項目の左側がゼロで埋められます。 |
|
I 、P |
パック項目は型 I に変換されます。変換で生成された 4 バイトは、対象項目に右寄せで格納されます。対象項目が短すぎる場合、オーバーフローが発生します。対象項目が長すぎる場合、対象項目の左側がゼロで埋められます。 |
|
STRING |
先行ゼロが生成されない点を除き、データ型 C の項目と同様です。 |
|
T |
パック項目値は午前 0 時以降の秒数を表し、HHMMSS 書式で時刻に変換されます。 |
|
X |
パック項目は型 I に変換されます。変換で生成された 4 バイトは、右寄せされてビッグエンディアン書式で対象項目に格納されます。対象項目は短すぎる場合、左側から切詰められます。対象項目は 4 より長い場合、左側がゼロで埋められます。マイナス数値は、2 の補数 (= ビット補数 +1) によって表現されます。 |
|
XSTRING |
先行ゼロが生成されない点を除き、型 X の項目と同様です。 |
ソースデータ型 STRING の変換表
|
対象 |
変換 |
|
C |
対象項目は左から右に入力されます。対象項目は長すぎる場合、後続の空白で埋められます。短すぎる場合は、内容が右から切詰められます。 |
|
D |
文字列には、8 文字の日付が YYYYMMDD の書式で格納されていなければなりません。 |
|
F |
文字列の内容は、リテラルでの記述どおり、型 F の有効な表現でなければなりません。 |
|
N |
文字列内の数値だけがコピーされます。対象項目は右寄せされ、後続のゼロで埋められます。対象項目は短すぎる場合、左側から切詰められます。 |
|
I 、P |
文字列には、10 進数の表現がなければなりません。つまり、オプションの符号を伴い、小数点以下桁数が最大 1 桁の数値列です。ソース項目に空白を含めることができます。対象項目が短すぎる場合、オーバーフローが発生することがあります。これにより、プログラムの強制終了が発生する可能性があります。 |
|
STRING |
ソース文字列は、変換されずに対象文字列へコピーされます。 |
|
T |
文字列には、6 文字の時刻が HHMMSS の書式で格納されていなければなりません。 |
|
X |
文字項目には 16 進文字列が格納されていなければならないので、有効な文字は 0 、1 、2 、3 、4 、5 、6 、7 、8 、9 、A 、B 、C 、D 、E 、および F だけになります。この文字列は、16 進数としてパックされ、左寄せで転送されてから、右側がゼロで埋められるか、右側で切詰められます。 |
|
XSTRING |
対象項目がゼロで埋められない点を除き、データ型 X の項目と同様です。 |
ソースデータ型 T の変換表
|
対象 |
変換 |
|
C |
ソース項目は、変換されずに左寄せで転送されます。 |
|
D |
サポートされていません。構文チェックでエラーメッセージが表示されるか、または実行時エラーが発生します。 |
|
F |
ソース項目はパック数値に変換されます。次に、パック数値が浮動小数点形式の値に変換されます ( 該当する表を参照してください) 。 |
|
N |
日付は文字項目に変換されます。次に、文字項目が数値テキストに変換されます ( 該当する表を参照してください) 。 |
|
I 、P |
日付は、午前 0 時以降の秒数に変換されます。 |
|
STRING |
時刻は、文字項目に変換されてから文字列に変換されます。 |
|
T |
日付は変換されずに左寄せで転送され、必要に応じて、右側がゼロで埋められます。 |
|
X |
日付は、16 進書式で午前 0 時以降の秒数に変換されます。 |
|
XSTRING |
有効なバイトだけがコピーされる点を除き、型 X の項目と同様です。 |
ソースデータ型 X の変換表
|
対象 |
変換 |
|
C |
16 進項目の値は 16 進文字列に変換され、対象項目に左寄せで転送されてから、ゼロで埋められます。 |
|
D |
ソース項目値は 0001/01/01 以降の日数を表し、YYYYMMDD 書式で日付に変換されます。 |
|
F |
ソース項目はパック数値に変換されます。次に、パック数値が浮動小数点形式の値に変換されます ( 該当する表を参照してください) 。 |
|
N |
ソース項目はパック数値に変換されます。次に、パック数値が数値テキスト項目に変換されます ( 該当する表を参照してください) 。 |
|
I 、P |
ソース項目の値は、16 進数として解釈されます。ソース項目値は 10 進数にパックされ、右寄せで対象項目に転送されます。16 進項目が 4 バイトより長い場合、最後の 4 バイトだけが変換されます。対象項目が短すぎる場合、実行時エラーが発生することがあります。 |
|
STRING |
対象項目がゼロで埋められない点を除き、型 C の項目と同様です。文字列長は、16 進項目の長さの 2 倍になります。 |
|
T |
ソース項目値は午前 0 時以降の秒数を表し、HHMMSS 書式で時刻に変換されます。 |
|
X |
値は左寄せで転送され、必要に応じて、右側が X'00' で 埋められます。 |
|
XSTRING |
16 進項目は完全にコピーされます。つまり、後続のゼロは切詰められません。 |
ソースデータ型 XSTRING の変換表
|
対象 |
変換 |
|
C |
バイト列の値は 16 進文字列に変換され、対象項目に左寄せで転送されてから、ゼロで埋められます。 |
|
D |
バイト列値は 0001/01/01 以降の日数を表し、YYYYMMDD 書式で日付に変換されます。 |
|
F |
バイト列の内容はパック数値に変換されます。次に、パック数値が浮動小数点形式の値に変換されます ( 該当する表を参照してください) 。 |
|
N |
バイト列の内容はパック数値に変換されます。次に、パック数値が数値テキスト項目に変換されます ( 該当する表を参照してください) 。 |
|
I 、P |
バイト列の内容は 16 進数として解釈されます。ソース項目値は 10 進数にパックされ、対象項目に右寄せで転送されます。バイト列が 4 バイトより長い場合、最後の 4 バイトだけが変換されます。対象項目が短すぎる場合、実行時エラーが発生することがあります。 |
|
STRING |
対象項目がゼロで埋められない点を除き、型 C の項目と同様です。文字列長は、バイト列の長さの 2 倍になります。 |
|
T |
バイト列値は午前 0 時以降の秒数を表し、HHMMSS 書式で時刻に変換されます。 |
|
X |
バイト列は左寄せで転送され、必要に応じて、右側が X'00' で 埋められます。 |
|
XSTRING |
ソースバイト列は、変換されずに対象バイト列へコピーされます。 |
