スケーラブルデータベースサーバ HiRDB Version 8 SQLリファレンス

[目次][索引][前へ][次へ]

付録C.4 外部のDBがDB2の場合

データ型の対応関係(外部の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のデータ型の定義長を同じにしてください。
  • 外部サーバのデータを取得する場合
    HiRDBのデータ型の定義長(長さnバイト:n≦255)が外部サーバのデータ型の実長よりも短い場合,先頭のnバイトだけを取得します。
    また,長い場合,HiRDBが固定長のデータ型のときは左詰めに挿入され,余りの部分に空白(各国文字列の場合は全角空白,文字列又は混在文字列の場合は半角空白)を設定して取得します。
    HiRDBが可変長のデータ型の場合,そのまま取得します。
  • 外部サーバにデータを挿入する場合
    HiRDBのデータ型の定義長(長さnバイト:n≦255)が,外部サーバのデータ型の実長より長い場合,エラーになります。
    また,短い場合,HiRDBが固定長のデータ型のときは左詰めに挿入され,余りの部分に空白(各国文字列の場合は全角空白,文字列又は混在文字列の場合は半角空白)を設定して代入します。
    HiRDBが可変長のデータ型の場合,そのまま代入します。

    表C-9 データ型の対応関係(外部のDBがDB2の場合)(2/2)

    DB2のデータ型
    (外部のDB)
    HiRDBのデータ型
    NCHAR(n)
    1≦n≦127
    NVARCHAR(n)
    1≦n≦127
    DATE TIME TIMESTAMP(p)
    p=0,2,4,又は6
    INTERVAL YEAR TO DAY INTERVAL HOUR TO SECOND BINARY(n)
    1≦n≦255
    SMALLINT                
    INTEGER                
    DECIMAL(p,s)
    p:精度
    s:位取り
    1≦p≦29                
    30≦p≦31                
    REAL又はFLOAT(n)※1
    1≦n≦21
                   
    DOUBLE又はFLOAT(n)※1
    22≦n≦53
                   
    CHAR(n)
    1≦n≦255
                   
    CHAR(n)
    256≦n
                   
    VARCHAR(n)
    1≦n≦255
                   
    VARCHAR(n)
    256≦n≦32,000
                   
    VARCHAR(n)
    32,001≦n
                   
    GRAPHIC(n)
    1≦n≦127
    ※3※5              
    GRAPHIC(n)
    128≦n
                   
    VARGRAPHIC(n)
    1≦n≦127
      ※3※5            
    VARGRAPHIC(n)
    128≦n≦16,000
                   
    VARGRAPHIC(n)
    16,001≦n
                   
    DATE              
    TIME       ※2        
    TIMESTAMP         ※1※4      
    BLOB                
    CLOB                
    DBLOB                
    ROWID                

(凡例)
◎:推奨するデータ型です。
空白:マッピングできないデータ型です。

注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が可変長のデータ型の場合,そのまま代入します。