コンテンツフレーム起動

DB2 Common Server 用のネイティブ SQL  文書を SAP ライブラリストラクチャに組み込む

ABAP 変数と DB2 Common Server データベースのデータ型の変換テーブルを次に示します。

        可能な限り、太字で示した ABAP 変数タイプとデータベースのデータ型の組み合わせを使用してください。

        不正な組み合わせには、ABAP エラープロシージャが発生し、あわせて ABAP ショートダンプには SQL エラーコードが表示されます。

        ここでリストされていない組み合わせの動作は定義されていません。

注記: 次の文書では、最新のデータベースリリース DB2 UDB バージョン 5.0 を参照します。SAP は、他のリリースとの一貫性について責任を負いません。データベース製造業者 (IBM) 自身がデータ型変換に下位互換性があると保証した場合のみ、一貫性が保証されます。これらのテーブルは、保証された変換ルールセットと見なさないでください。 


テーブルでは、次の略語を使用します。

        ok: インタフェースは必要な変換を実行できます。

        [info]: 変換を実行します。データベースの警告が表示されますが、SQL エラーは発生しません。ただしデータは右切り捨て [rtrunc]、左切り捨て [trunc]、四捨五入 [round] の形で切り捨てられるか、未定義 [undef] になります。

        <Errorcode>: 変換エラーは、データベースから対応する SQL エラーコードでマークされます。これは ABAP ショートダンプに含まれます。

 

変数値の挿入/ 更新には、次の ABAP データ型を使用します。

     文字C(n)

     数値テキスト N(n)

     パック数値 P(m,d)

     整数I

     浮動小数点数 F

     日付 D

     時刻T

     16 進数 X(n)

 

列値には、次のデータベース型を使用します。

     char

     varchar

     longvarchar

     decimal

     numeric

     float

     double

     smallint

     integer

     date

     time

     timestamp


挿入/ 更新

 

ABAP データ型: 文字 C

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

 

ABAP データ型: 数値 N

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

 

ABAP データ型: パック数値 P

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

 

ABAP データ型: 整数 I

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

 

ABAP データ型: 浮動小数点数 F

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

 

ABAP データ型: 日付 D

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

 

ABAP データ型: 時刻 T

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

 

ABAP データ型: 16 進数 X

DB

データ型

事例 [メモ ]

結果

char

ABAP データ値の幅 > DB の列幅

22001

ABAP データ値の幅 = DB の列幅

ok

ABAP データ値の幅 < DB の列幅

[undef]

varchar

ABAP データ値の幅 > DB の列幅

22001

ABAP データ値の幅 = DB の列幅

ok

ABAP データ値の幅 < DB の列幅

[undef]

 

選択

 

データベース列データ型: charvarcharlongvarchar

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

 

データベース項目のデータ型: 10 進数または数値

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]

 

データベース列データ型: 整数または smallint

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

 

 

 

コンテンツフレーム終了