HiRDB External Data Access Version 8

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

4.2.3  ORACLEのデータ型との対応関係

外部サーバがORACLEの場合,マッピング時のデータ型の対応関係を,表4-6表4-7および表4-8に示します。

表4-6 データ型の対応関係(外部サーバがORACLEの場合)(1/3)

ORACLEのデータ型
(外部のDB)
 
HiRDBのデータ型
SMALLINT INTEGER DECIMAL(m,n)
1≦m≦29,0≦n≦m
SMALLFLTまたはREAL※1 FLOATまたはDOUBLE PRECISION※1
NUMBER(p,s)
p:精度
s:位取り
 
 
 
 
 
 
 
s=0または省略 p=*または省略※9 ※2 ※3 ※6※7
s=0,省略,または-28≦s≦-1
 
 
 
1≦p-s≦4 ※4 ※4 ※6※7
5≦p-s≦9   ※5 ※6※7
10≦p-s≦29     ※6※7
30≦p-s≦38      
1≦s≦29
 
1≦p≦29     ※7※8
p≧30      
s≧30またはs≦-29      
CHAR(n)
 
1≦n≦255          
256≦n≦2,000          
VARCHAR2(n)
 
1≦n≦255          
256≦n≦4,000          
NCHAR(n)(2バイト固定幅の各国文字セットの場合)
 
1≦n≦127          
128≦n≦1,000          
NCHAR(n)(可変幅の各国文字セットの場合)
 
1≦n≦255          
256≦n≦2,000          
NVARCHAR2(n)(2バイト固定幅の各国文字セットの場合)
 
1≦n≦127          
128≦n≦2,000          
NVARCHAR2(n)(可変幅の各国文字セットの場合)
 
1≦n≦255          
256≦n≦4,000          
LONG(n)
 
 
1≦n≦255          
256≦n≦32,000          
32,001≦n≦2,000,000,000          
DATE          
RAW(n)
 
1≦n≦255          
256≦n≦2,000          
LONG
RAW(n)
 
 
1≦n≦255          
256≦n≦32,000          
32,001≦n≦
2,000,000,000
         
ROWID          
MLSLABEL          
CLOB(n)
 
1≦n≦
1,999,999,999
         
2,000,000,000≦n
≦4,000,000,000
         
NCLOB(n)
 
1≦n≦
1,999,999,999
         
2,000,000,000≦n
≦4,000,000,000
         
BLOB(n)
 
1≦n≦
1,999,999,999
         
2,000,000,000≦n
≦4,000,000,000
         

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

注※1
表現できる値の精度が落ちる場合があります。HiRDBでの値の範囲および精度は,ハードウェアに依存します。

注※2
-32,768〜32,767の範囲に限ります。

注※3
-2,147,483,648〜2,147,483,647の範囲に限ります。

注※4
-9,999〜9,999の範囲に限ります。

注※5
-999,999,999〜999,999,999の範囲に限ります。

注※6
s<0の場合,DECIMAL(m,n)をDECIMAL(p-s,0)としてください。また,この場合,下(-s)けたは0となります。s=0の場合,または省略した場合,DECIMAL(m,n)をDECIMAL(p,0)としてください。
例:NUMBER(4,-3)=nnnn000.の場合,HiRDBではDECIMAL(7,0)となります。

注※7
整数部のけた数がHiRDBのデータ型より小さい場合,外部サーバから行を取得できません。
小数部のけた数がHiRDBのデータ型より小さい場合,HiRDBのデータ型の小数部のけた数に合わせて残りの小数部を切り捨てて取得します。
それ以外の場合,整数部または小数部のけた数がHiRDBのデータ型より大きいときは,HiRDBのデータ型のけた数に合わせて拡張した部分に,0を補って取得します。

注※8
p<sの場合,DECIMAL(m,n)をDECIMAL(s,s)としてください。また,この場合,小数点以下(s-p)けたは0となります。p≧sの場合,DECIMAL(m,n)をDECIMAL(p,s)としてください。
例:NUMBER(4,5)=0.01234の場合,HiRDBではDECIMAL(5,5)となります。

注※9
用途に応じて,マッピングするHiRDBのデータ型を決定してください。DECIMAL型とマッピングする場合は,外部サーバで使用しているデータの精度(p),および位取り(s)に従って,外部表定義の精度(m)および位取り(n)の値を指定してください。

 

表4-7 データ型の対応関係(外部サーバがORACLEの場合)(2/3)

ORACLEのデータ型
(外部のDB)
 
HiRDBのデータ型
CHAR(n)
1≦n≦255
VARCHAR(n)
1≦n≦255
MCHAR(n)
1≦n≦255
MVARCHAR(n)
1≦n≦255
NCHAR(n)
1≦n≦127
NVARCHAR(n)
1≦n≦127
NUMBER(p,s)
p:精度
s:位取り
 
 
 
 
 
 
 
s=0または省略 p=*または省略            
s=0,省略,または-28≦s≦-1
 
 
 
1≦p-s≦4            
5≦p-s≦9            
10≦p-s≦29            
30≦p-s≦38            
1≦s≦29
 
1≦p≦29            
p≧30            
s≧30またはs≦-29            
CHAR(n)
 
1≦n≦255 ※1※6   ※2※6      
256≦n≦2,000            
VARCHAR2(n)
 
1≦n≦255   ※1※6   ※2※6    
256≦n≦4,000            
NCHAR(n)(2バイト固定幅の各国文字セットの場合)
 
1≦n≦127         ※6  
128≦n≦1,000            
NCHAR(n)(可変幅の各国文字セットの場合)
 
1≦n≦255         ※3※6  
256≦n≦2,000            
NVARCHAR2(n)(2バイト固定幅の各国文字セットの場合)
 
1≦n≦127           ※6
128≦n≦2,000            
NVARCHAR2(n)(可変幅の各国文字セットの場合)
 
1≦n≦255           ※6
256≦n≦4,000            
LONG(n)
 
 
1≦n≦255       ※1※5※6   ※2※5※6
256≦n≦32,000            
32,001≦n≦
2,000,000,000
           
DATE ※4※6          
RAW(n)
 
1≦n≦255            
256≦n≦2,000            
LONG
RAW(n)
 
 
1≦n≦255            
256≦n≦32,000            
32,001≦n≦
2,000,000,000
           
ROWID            
MLSLABEL            
CLOB(n)
 
1≦n≦
1,999,999,999
           
2,000,000,000≦n
≦4,000,000,000
           
NCLOB(n)
 
1≦n≦
1,999,999,999
           
2,000,000,000≦n
≦4,000,000,000
           
BLOB(n)
 
1≦n≦
1,999,999,999
           
2,000,000,000≦n
≦4,000,000,000
           

(凡例)
◎:推奨するデータ型です。
○:マッピングできるデータ型です。
△:外部サーバ情報定義のpd_hb_use_describeオペランドにYを指定した場合,マッピングできるデータ型となります。
空白:マッピングできないデータ型です。

外部サーバ上の256バイト以上の列に対して,255バイトの文字列型を定義した場合,255バイトまでのデータしか取得できません。

注※1
データに全角文字を含まない場合,推奨データ型となります。

注※2
データに全角文字を含む場合,推奨データ型となります。

注※3
外部表上の列の定義データ長は,n÷2としてください。

注※4
CHAR(19)にマッピングしてください。日付,日時の文字列の形式は,'YYYY-MM-DD-hh:mm:ss'になります。該当する列に比較や演算をした場合,外部のDBでエラーとなることがあります。

注※5
該当する列を次の個所に指定すると,外部のDBでエラーとなることがあります。
  • GROUP BY句
  • ORDER BY句
  • DISTINCT演算子
  • 関数
  • 条件

注※6
指定がない場合は,外部サーバとHiRDBのデータ型の定義長を同じにしてください。
HiRDBのデータ型の定義長(長さnバイト:n≦255)が外部サーバのデータ型の実長よりも短い場合,先頭のnバイトだけを取得します。
また,長い場合,HiRDBが固定長のデータ型のときは左詰めに挿入され,余りの部分に空白(各国文字列の場合は全角空白,文字列または混在文字列の場合は半角空白)を設定して取得します。
HiRDBが可変長のデータ型の場合,そのまま取得します。

 

表4-8 データ型の対応関係(外部サーバがORACLEの場合)(3/3)

ORACLEのデータ型
(外部のDB)
 
HiRDBのデータ型
DATE TIME TIMESTAMP(p)
p=0,2,4,または6
INTERVAL YEAR TO DAY INTERVAL HOUR TO SECOND BINARY(n)
1≦n≦255
NUMBER(p,s)
p:精度
s:位取り
 
 
 
 
 
 
 
s=0または省略 p=*または省略            
s=0,省略,または-28≦s≦-1
 
 
 
1≦p-s≦4            
5≦p-s≦9            
10≦p-s≦29            
30≦p-s≦38            
1≦s≦29
 
1≦p≦29            
p≧30            
s≧30またはs≦-29            
CHAR(n)
 
1≦n≦255            
256≦n≦2,000            
VARCHAR2(n)
 
1≦n≦255            
256≦n≦4,000            
NCHAR(n)(2バイト固定幅の各国文字セットの場合)
 
1≦n≦127            
128≦n≦1,000            
NCHAR(n)(可変幅の各国文字セットの場合)
 
1≦n≦255            
256≦n≦2,000            
NVARCHAR2(n)(2バイト固定幅の各国文字セットの場合)
 
1≦n≦127            
128≦n≦2,000            
NVARCHAR2(n)(可変幅の各国文字セットの場合)
 
1≦n≦255            
256≦n≦4,000            
LONG(n)
 
 
1≦n≦255            
256≦n≦32,000            
32,001≦n≦
2,000,000,000
           
DATE ※1   ※2      
RAW(n)
 
1≦n≦255            
256≦n≦2,000            
LONG RAW(n)
 
 
1≦n≦255           ※3※4
256≦n≦32,000            
32,001≦n≦
2,000,000,000
           
ROWID            
MLSLABEL            
CLOB(n)
 
1≦n≦
1,999,999,999
           
2,000,000,000≦n
≦4,000,000,000
           
NCLOB(n)
 
1≦n≦
1,999,999,999
           
2,000,000,000≦n
≦4,000,000,000
           
BLOB(n)
 
1≦n≦
1,999,999,999
           
2,000,000,000≦n
≦4,000,000,000
           

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

注※1
時分秒は切り捨てられます。

注※2
TIMESTAMP型にマッピングする場合は,精度pに0を指定するか,または省略してください。

注※3
BINARY型にマッピングする場合は,ORACLEに格納されているデータの中で,最も長いデータの実長(バイト)以上の値を指定してください。

注※4
指定がない場合は,外部サーバとHiRDBのデータ型の定義長を同じにしてください。
HiRDBのデータ型の定義長(長さnバイト:n≦255)が外部サーバのデータ型の実長よりも短い場合,先頭のnバイトだけを取得します。
また,長い場合,HiRDBが固定長のデータ型のときは左詰めに挿入され,余りの部分に空白(各国文字列の場合は全角空白,文字列または混在文字列の場合は半角空白)を設定して取得します。
HiRDBが可変長のデータ型の場合,そのまま取得します。