データ型の対応関係(外部のDBがDB2の場合)を表C-8及び表C-9に示します。
表C-8 データ型の対応関係(外部のDBがDB2の場合)(1/2)
DB2のデータ型 (外部のDB) | HiRDBのデータ型 |
---|
SMALLINT | INTEGER | DECIMAL(m,n) 1≦m≦29,0≦n≦m | DECIMAL(m,n)又は NUMERIC(m,n) | SMALLFLT又はREAL※1 | FLOAT又はDOUBLE PRECISION※1 | CHAR(n) 1≦n≦255 | VARCHAR(n) 1≦n≦255 | MCHAR(n) 1≦n≦255 | MVARCHAR(n) 1≦n≦255 |
---|
30≦m≦31,0≦n≦m | 32≦m≦38,0≦n≦m |
---|
SMALLINT | ◎ | ○※2 | ○※3※11 | | | ○ | ○ | | | | |
INTEGER | ○※2 | ◎ | ○※4※11 | | | ○ | ○ | | | | |
DECIMAL(p,s) p:精度 s:位取り | 1≦p≦29 | ○※5 | ○※6 | ◎※11※12 | | | ○ | ○ | | | | |
30≦p≦31 | | | ○※7※11 | ○ | | ○ | ○ | | | | |
REAL又はFLOAT(n)※1 1≦n≦21 | ○ | ○ | ○※11 | | | ◎ | ○ | | | | |
DOUBLE又はFLOAT(n)※1 22≦n≦53 | ○ | ○ | ○※11 | | | ◎ | ○ | | | | |
CHAR(n) 1≦n≦255 | | | | | | | | ◎※8※13 | | ◎※10※13 | |
CHAR(n) 256≦n | | | | | | | | | | | |
VARCHAR(n) 1≦n≦255 | | | | | | | | | ◎※8※13 | | ◎※10※13 |
VARCHAR(n) 256≦n≦32,000 | | | | | | | | | | | |
VARCHAR(n) 32,001≦n | | | | | | | | | | | |
GRAPHIC(n) 1≦n≦127 | | | | | | | | | | | |
GRAPHIC(n) 128≦n | | | | | | | | | | | |
VARGRAPHIC(n) 1≦n≦127 | | | | | | | | | | | |
VARGRAPHIC(n) 128≦n≦16,000 | | | | | | | | | | | |
VARGRAPHIC(n) 16,001≦n | | | | | | | | | | | |
DATE | | | | | | | | | | | |
TIME | | | | | | | | | | | |
TIMESTAMP | | | | | | | | △※9※13 | | | |
BLOB | | | | | | | | | | | |
CLOB | | | | | | | | | | | |
DBLOB | | | | | | | | | | | |
ROWID | | | | | | | | | | | |
- (凡例)
- ◎:推奨するデータ型です。
- ○:マッピングできるデータ型です。
- △:DESCRIBE文を実行する場合,マッピングできるデータ型となります。
- 空白:マッピングできないデータ型です。
- 注1
- 外部サーバ上の256バイト以上の列に対して,255バイトの文字列型を定義した場合,255バイトまでのデータしか取得できません。
- 注2
- 2バイト文字を含む文字列のコード変換後のバイト数が,DB2で扱える最大バイト数を超えた場合はDB2でエラーとなります。
- 注※1
- 表現できる値の精度が落ちる場合があります。HiRDBでの値の範囲及び精度は,ハードウェアに依存します。
- 注※2
- -32,768~32,767の範囲に限ります。
- 注※3
- DECIMAL(5)としてください。-32,768~32,767の範囲に限ります。
- 注※4
- DECIMAL(10)としてください。-2,147,483,648~2,147,483,647の範囲に限ります。
- 注※5
- 1≦p≦4,s=0の場合に使用できます。
- 注※6
- 1≦p≦9,s=0の場合に使用できます。
- 注※7
- p-s≦29の場合,DECIMAL(p-s,0)にマッピングできます。ただし,小数点以下は切り捨てられます。
- 注※8
- データに全角文字を含まない場合,推奨するデータ型となります。
- 注※9
- CHAR(n)(nは19,又は21~26)にマッピングしてください。日付,日時の文字列の形式は,nが19の場合は'YYYY-MM-DD hh:mm:ss',nが21~26の場合は'YYYY-MM-DD hh:mm:ss.xxxxxx'(xは21のときは1けた,26のときは6けた)となります。また,該当する列に対して比較や演算をした場合,外部サーバでエラーとなったり,意図した結果にならなかったりすることがあります。
- 注※10
- データに全角文字を含む場合,推奨するデータ型となります。
- 注※11
- 外部のDBのデータを取得する場合
外部のDBの整数部のけた数がHiRDBのデータ型より大きい場合,エラーとなります。
外部のDBの小数部のけた数がHiRDBのデータ型より大きい場合,HiRDBのデータ型の小数部のけた数に合わせて,残りの小数部を切り捨てて取得します。
- 外部のDBにデータを代入する場合
外部のDBの整数部のけた数がHiRDBのデータ型より小さい場合,エラーとなります。
外部のDBの小数部のけた数がHiRDBのデータ型より小さい場合,外部のDBの小数部のけた数に合わせて,残りの小数部を切り捨てて代入します。
外部のDBの整数部又は小数部のけた数がHiRDBのデータ型より大きい場合,外部のDBの整数部のけた数に合わせて拡張した部分に,0を補って代入します。
- 注※12
- p及びsを省略して定義している場合,外部サーバによって省略時の精度及び位取りの仮定値が異なります。そのため,外部サーバでの精度(p)及び位取り(s)を,それぞれ外部表定義での精度(m)及び位取り(n)と一致させる必要があります。
- 省略時以外は,DECIMAL(m,n)をDECIMAL(p,s)としてください。
- 注※13
- 指定がない場合は,外部サーバとHiRDBのデータ型の定義長を同じにしてください。
- (凡例)
- ◎:推奨するデータ型です。
- 空白:マッピングできないデータ型です。
- 注1
- 外部サーバ上の256バイト以上の列に対して,255バイトの文字列型を定義した場合,255バイトまでのデータしか取得できません。
- 注2
- 2バイト文字を含む文字列のコード変換後のバイト数が,DB2で扱える最大バイト数を超えた場合はDB2でエラーとなります。
- 注※1
- TIMESTAMP型にマッピングする場合は,精度pに6を指定してください。
- 注※2
- 24時は0時となります。
- 注※3
- GRAPHIC型は127文字(254バイト)まで定義できますが,GRAPHIC型定数は124文字(248バイト)までしか指定できません。125文字以上(249バイト以上)指定する場合は,連結演算を使用してください。
- 注※4
- 24時は,翌日の0時となります。ただし,'9999-12-31-24.00.00.000000'の場合はエラーとなります。
- 注※5
- 指定がない場合は,外部サーバとHiRDBのデータ型の定義長を同じにしてください。
- 外部サーバのデータを取得する場合
HiRDBのデータ型の定義長(長さnバイト:n≦255)が外部サーバのデータ型の実長よりも短い場合,先頭のnバイトだけを取得します。
また,長い場合,HiRDBが固定長のデータ型のときは左詰めに挿入され,余りの部分に空白(各国文字列の場合は全角空白,文字列又は混在文字列の場合は半角空白)を設定して取得します。
HiRDBが可変長のデータ型の場合,そのまま取得します。
- 外部サーバにデータを挿入する場合
HiRDBのデータ型の定義長(長さnバイト:n≦127)が,外部サーバのデータ型の実長より長い場合,エラーになります。
また,短い場合,HiRDBが固定長のデータ型のときは左詰めに挿入され,余りの部分に全角空白を設定して代入します。
HiRDBが可変長のデータ型の場合,そのまま代入します。