!--a11y-->

ABAP 変数と DB2 Common Server データベースのデータ型の変換テーブルを次に示します。
キ 可能な限り、太字で示した ABAP 変数タイプとデータベースのデータ型の組み合わせを使用してください。
キ 不正な組み合わせには、ABAP エラープロシージャが発生し、あわせて ABAP ショートダンプには SQL エラーコードが表示されます。
キ ここでリストされていない組み合わせの動作は定義されていません。
注記: 次の文書では、最新のデータベースリリース DB2 UDB バージョン 5.0 を参照します。SAP は、他のリリースとの一貫性について責任を負いません。データベース製造業者 (IBM) 自身がデータ型変換に下位互換性があると保証した場合のみ、一貫性が保証されます。これらのテーブルは、保証された変換ルールセットと見なさないでください。
テーブルでは、次の略語を使用します。
キ ok: インタフェースは必要な変換を実行できます。
キ [info]: 変換を実行します。データベースの警告が表示されますが、SQL エラーは発生しません。ただしデータは右切り捨て [rtrunc]、左切り捨て [trunc]、四捨五入 [round] の形で切り捨てられるか、未定義 [undef] になります。
キ <Errorcode>: 変換エラーは、データベースから対応する SQL エラーコードでマークされます。これは ABAP ショートダンプに含まれます。
キ 文字C(n)
キ 数値テキスト N(n)
キ
パック数値 P(m,d)
キ
整数I
キ
浮動小数点数 F
キ
日付 D
キ
時刻T
キ
16 進数 X(n)
キ
char
キ
longvarchar
キ
decimal
キ
numeric
キ
float
キ
double
キ
smallint
キ
date
キ
time
キ
timestamp DB データ型 事例
[メモ
] 結果 char ABAP データ値の幅 > DB
の列幅 22001 ABAP データ値の幅 <= DB
の列幅 ok varchar ABAP データ値の幅 > DB
の列幅 22001 ABAP データ値の幅 <= DB
の列幅 ok decimal ABAP データ値は非数値 22005 変換で有効数字を喪失 22003 非有効数字を喪失 22003 変換での喪失なし ok numeric ABAP データ値は非数値 22005 変換で有効数字を喪失 22003 非有効数字を喪失 22003 変換での喪失なし ok smallint ABAP データ値は非数値 22005 変換で有効数字を喪失 22003 非有効数字を喪失 [trunc] 変換での喪失なし ok integer ABAP データ値は非数値 22005 変換で有効数字を喪失 22003 非有効数字を喪失 [trunc] 変換での喪失なし ok float ABAP データ値は非数値 22005 変換で有効数字を喪失 22003 非有効数字を喪失 [trunc] 変換での喪失なし ok double ABAP データ値は非数値 22005 変換で有効数字を喪失 22003 非有効数字を喪失 [trunc] 変換での喪失なし ok date ABAP データ値は有効な DB 日付書式でない 22007 ABAP データ値は有効な DB 日付書式である ok time ABAP データ値は有効な DB 時刻書式でない 22007 ABAP データ値は有効な DB 時刻書式である ok timestamp ABAP データ値は有効な DB タイムスタンプ書式でない 22007 ABAP データ値は有効な DB タイムスタンプ書式である ok DB データ型 事例
[メモ
] 結果
char ABAP データ値の幅 > DB
の列幅 22001 ABAP データ値の幅 <= DB
の列幅 ok varchar ABAP データ値の幅 > DB
の列幅 22001 ABAP データ値の幅 <= DB
の列幅 ok decimal 変換で数字を喪失 22003 変換での喪失なし ok numeric 変換で数字を喪失 22003 変換での喪失なし ok smallint 変換で数字を喪失 22003 変換での喪失なし ok integer 変換で数字を喪失 22003 変換での喪失なし ok float 変換で数字を喪失 22003 変換での喪失なし ok double 変換で数字を喪失 22003 変換での喪失なし ok date
22007 time
22007 timestamp
22007 DB データ型 事例
[メモ
] 結果
decimal 変換で有効数字を喪失 22003 非有効数字を喪失 [trunc] 変換での喪失なし ok numeric 変換で有効数字を喪失 22003 非有効数字を喪失 [trunc] 変換での喪失なし ok smallint 変換で有効数字を喪失 22003 非有効数字を喪失 [trunc] 変換での喪失なし ok integer 変換で有効数字を喪失 22003 非有効数字を喪失 [trunc] 変換での喪失なし ok float 変換で有効数字を喪失 22003 非有効数字を喪失 [trunc] 変換での喪失なし ok double 変換で有効数字を喪失 22003 非有効数字を喪失 [trunc] 変換での喪失なし ok DB データ型 事例
[メモ
] 結果 char 変換で数字を喪失 22003 変換での喪失なし ok varchar 変換で数字を喪失 22003 変換での喪失なし ok decimal 変換で数字を喪失 22003 変換での喪失なし ok numeric 変換で数字を喪失 22003 変換での喪失なし ok smallint 変換で数字を喪失 22003 変換での喪失なし ok integer 変換で数字を喪失 22003 変換での喪失なし ok float 変換で数字を喪失 22003 変換での喪失なし ok double 変換で数字を喪失 22003 変換での喪失なし ok date
22007 time
22007 timestamp
22007 DB データ型 事例
[メモ
] 結果 char 変換で有効数字を喪失 22003 非有効数字を喪失 22003 変換での喪失なし ok varchar 変換で有効数字を喪失 22003 非有効数字を喪失 22003 変換での喪失なし ok decimal 変換で有効数字を喪失 22003 非有効数字を喪失 [trunc] 変換での喪失なし ok numeric 変換で有効数字を喪失 22003 非有効数字を喪失 [trunc] 変換での喪失なし ok smallint 変換で有効数字を喪失 22003 非有効数字を喪失 [trunc] 変換での喪失なし ok integer 変換で有効数字を喪失 22003 非有効数字を喪失 [trunc] 変換での喪失なし ok
float 変換で有効数字を喪失 22003 変換での喪失なし ok
double 変換で有効数字を喪失 22003 変換での喪失なし ok date
22007 time
22007 timestamp
22007 DB データ型 事例
[メモ
] 結果
char(8) ABAP データ値の幅 (8) > DB
の列幅 22001 ABAP データ値の幅 (8) <= DB
の列幅 ok varchar ABAP データ値の幅 (8) > DB
の列幅 22001 ABAP データ値の幅 (8) <= DB
の列幅 ok decimal 変換で数字を喪失 22003 変換での喪失なし ok numeric 変換で数字を喪失 22003 変換での喪失なし ok smallint [データは常に喪失] 22003 integer
ok float
ok double
ok date
22007 time
22007 timestamp
22007 DB データ型 事例
[メモ
] 結果
char(6) ABAP データ値の幅 (6) > DB
の列幅 22001 ABAP データ値の幅 (6) <= DB
の列幅 ok varchar ABAP データ値の幅 (6) > DB
の列幅 22001 ABAP データ値の幅 (6) <= DB
の列幅 ok decimal 変換で数字を喪失 22003 変換での喪失なし ok numeric 変換で数字を喪失 22003 変換での喪失なし ok smallint [データは常に喪失] 22003 integer
ok float
ok double
ok date
22007 time
22007 timestamp
22007 DB データ型 事例
[メモ
] 結果
char ABAP データ値の幅 > DB
の列幅 22001 ABAP データ値の幅 = DB の列幅 ok ABAP データ値の幅 < DB
の列幅 [undef] varchar ABAP データ値の幅 > DB
の列幅 22001 ABAP データ値の幅 = DB の列幅 ok ABAP データ値の幅 < DB
の列幅 [undef] ABAP データ型 事例
[メモ
] 結果
文字
C データベースのデータ値の幅 > ABAP
項目幅 [rtrunc] データベースのデータ値の幅 < ABAP
項目幅 ok データベースのデータ値の幅 = ABAP
項目幅 ok 数値 N データベースのデータ値は非数値 [undef] データベースのデータ値の幅 > ABAP
項目幅 22sim データベースのデータ値の幅 < ABAP
項目幅 ok データベースのデータ値の幅 = ABAP
項目幅 ok パック P [SQL
のシミュレーションエラー] 22sim 整数 I データベースのデータ値は非数値 22005 変換で有効数字を喪失 22003 変換での喪失なし ok 浮動小数点数 F データベースのデータ値は非数値 22005 変換で有効数字を喪失 22003 変換で非有効数字を喪失 [round] 変換での喪失なし ok 日付 D ABAP データ型 C(8) として機能 - 時刻 T ABAP データ型 C(6) として機能 - 16 進数 X データベースのデータ値の幅 > ABAP
項目幅 [rtrunc] データベースのデータ値の幅 < ABAP
項目幅 ok データベースのデータ値の幅 = ABAP
項目幅 ok ABAP データ型 事例
[メモ
] 結果 文字 C [SQL
のシミュレーションエラー] 22sim 数値 N [SQL
のシミュレーションエラー] 22sim
パック
P 変換で有効数字を喪失 22003 変換で非有効数字を喪失 [round] 変換での喪失なし ok 整数 I 変換で有効数字を喪失 22003 変換で非有効数字を喪失 [round] 変換での喪失なし OK 浮動小数点数 F 変換で有効数字を喪失 22003 変換で非有効数字を喪失 [round] 変換での喪失なし ok 日付 D [SQL
のシミュレーションエラー] 22sim 時刻 T [SQL
のシミュレーションエラー] 22sim 16 進数 X
[undef] ABAP データ型 事例
[メモ
] 結果 文字 C 変換で有効数字を喪失 22003 変換で非有効数字を喪失 [round] 変換での喪失なし ok 数値 N [SQL
のシミュレーションエラー] 22sim パック P [SQL
のシミュレーションエラー] 22sim 整数 I 変換で有効数字を喪失 22003 変換で非有効数字を喪失 [round] 変換での喪失なし ok
浮動小数点数
F 変換で有効数字を喪失 22003 変換で非有効数字を喪失 [round] 変換での喪失なし ok 日付 D [SQL
のシミュレーションエラー] 22sim 時刻 T [SQL
のシミュレーションエラー] 22sim 16 進数 X
[undef] ABAP データ型 事例
[メモ
] 結果 文字 C 変換で有効数字を喪失 22003 変換での喪失なし ok 数値 N [SQL
のシミュレーションエラー] 22sim パック P [SQL
のシミュレーションエラー] 22sim
整数
I 変換での喪失なし ok 浮動小数点数 F 変換での喪失なし ok 日付 D [SQL
のシミュレーションエラー] 22sim 時刻 T [SQL
のシミュレーションエラー] 22sim 16 進数 X
[undef] ABAP データ型 事例
[メモ
] 結果 文字 C データベースのデータ値の幅 > ABAP
項目幅 22003 データベースのデータ値の幅 < ABAP
項目幅 ok データベースのデータ値の幅 = ABAP
項目幅 ok 数値 N [SQL
のシミュレーションエラー] 22sim パック P [SQL
のシミュレーションエラー] 22sim 整数 I [データ型属性の制限違反] 07006 浮動小数点数 F [データ型属性の制限違反] 07006 日付 D [SQL
のシミュレーションエラー] 22sim 時刻 T [SQL
のシミュレーションエラー] 22sim 16 進数 X [データ型属性の制限違反] 07006
列値には、次のデータベース型を使用します。
挿入/
更新
ABAP
データ型:
文字
C
ABAP
データ型:
数値
N
ABAP データ型: パック数値 P
ABAP
データ型:
整数
I
ABAP データ型: 浮動小数点数 F
ABAP データ型: 日付 D
ABAP データ型: 時刻 T
ABAP データ型: 16 進数 X
選択
データベース列データ型: char、varchar、longvarchar
[左寄せ、末尾までを空白で埋める]
[右寄せ、前にゼロを付加する]
[左寄せ、他の桁は未定義]
データベース項目のデータ型: 10
進数または数値
データベース項目のデータ型:
浮動小数点数または倍精度数
データベース列データ型:
整数または
smallint
データベース列データ型:
日付、時刻、タイムスタンプ
[左寄せ、末尾までを空白で埋める]