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

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

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

ORACLEのデータ型
(外部のDB)
HiRDBのデータ型
SMALLINTINTEGERDECIMAL(m,n)
又は
NUMERIC(m,n)
SMALLFLT又はREAL※1FLOAT又はDOUBLE PRECISION※1CHAR(n)
1≦n≦255
1≦m≦29,0≦n≦m30≦m≦38,0≦n≦m
NUMBER(p,s)
p:精度
s:位取り
s=0又は省略p=*又は省略※9※2※3※6※7  
s=0,省略,又は-28≦s≦-11≦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≦291≦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≦-11≦p-s≦4      
5≦p-s≦9      
10≦p-s≦29      
30≦p-s≦38      
1≦s≦291≦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のデータ型
TIMETIMESTAMP(p)
p=0,2,4,又は6
INTERVAL YEAR TO DAYINTERVAL HOUR TO SECONDBINARY(n)
1≦n≦255
NUMBER(p,s)
p:精度
s:位取り
s=0又は省略p=*又は省略     
s=0,省略,又は-28≦s≦-11≦p-s≦4     
5≦p-s≦9     
10≦p-s≦29     
30≦p-s≦38     
1≦s≦291≦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が可変長のデータ型の場合,そのまま取得します。