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

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

付録C.3 外部のDBがORACLEの場合

データ型の対応関係(外部のDBがORACLEの場合)を表C-5表C-7に示します。

表C-5 データ型の対応関係(外部のDBがORACLEの場合)(1/3)

ORACLEのデータ型
(外部のDB)
HiRDBのデータ型
SMALLINT INTEGER DECIMAL(m,n)
又は
NUMERIC(m,n)
SMALLFLT又はREAL※1 FLOAT又はDOUBLE PRECISION※1 CHAR(n)
1≦n≦255
1≦m≦29,0≦n≦m 30≦m≦38,0≦n≦m
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           ※1※6  
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             ※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を指定した場合,マッピングできるデータ型です。
空白:マッピングできないデータ型です。

注※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
  • 外部のDBのデータを取得する場合
    外部のDBの整数部のけた数がHiRDBのデータ型より大きい場合,エラーとなります。
    外部のDBの小数部のけた数がHiRDBのデータ型より大きい場合,HiRDBのデータ型の小数部のけた数に合わせて,残りの小数部を切り捨てて取得します。
  • 外部のDBにデータを代入する場合
    外部のDBの整数部のけた数がHiRDBのデータ型より小さい場合,エラーとなります。
    外部のDBの小数部のけた数がHiRDBのデータ型より小さい場合,外部のDBの小数部のけた数に合わせて,残りの小数部を切り捨てて代入します。
    外部のDBの整数部又は小数部のけた数がHiRDBのデータ型より大きい場合,外部のDBの整数部のけた数に合わせて拡張した部分に,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)の値を指定してください。

 

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

ORACLEのデータ型
(外部のDB)
HiRDBのデータ型
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
DATE
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   ※2※5        
256≦n≦2,000            
VARCHAR2(n) 1≦n≦255 ※1※5   ※2※5      
256≦n≦4,000            
NCHAR(n)(2バイト固定幅の各国文字セットの場合) 1≦n≦127       ※5    
128≦n≦1,000            
NCHAR(n)(可変幅の各国文字セットの場合) 1≦n≦255       ※3※5    
256≦n≦2,000            
NVARCHAR2(n)(2バイト固定幅の各国文字セットの場合) 1≦n≦127           ※5
128≦n≦2,000            
NVARCHAR2(n)(可変幅の各国文字セットの場) 1≦n≦255           ※5
256≦n≦4,000            
LONG(n) 1≦n≦255     ※1※4※5     ※2※4※5
256≦n≦32,000            
32,001≦n≦2,000,000,000            
DATE           ※1
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            

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

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

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

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

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

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

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

 

表C-7 データ型の対応関係(外部のDBがORACLEの場合)(3/3)

ORACLEのデータ型
(外部のDB)
HiRDBのデータ型
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      
RAW(n) 1≦n≦255          
256≦n≦2,000          
LONG RAW(n) 1≦n≦255         ※2※3
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
TIMESTAMP型にマッピングする場合は,精度pに0を指定するか,又は省略してください。

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

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