スケーラブルデータベースサーバ HiRDB Version 8 UAP開発ガイド

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

12.4.2 分散サーバのデータ型とHiRDBのデータ型との対応

分散サーバのデータ型は,DESCRIBE文の実行によって対応するHiRDBのデータ型に変換され,SQL記述領域に設定されます。このとき,HiRDBに対応するデータ型がない場合,DESCRIBE文はSQLDAにデータコード0を設定します。

UAPを作成する場合,DESCRIBE文を実行後にSQL記述領域に設定されるデータ型の変数で分散サーバ側の表の該当する列にアクセスするようにします。ただし,これには幾つかの例外(DATE型の列にCHAR型の変数でアクセスするなど)があります。

<この項の構成>
(1) 分散サーバがHiRDBの場合
(2) 分散サーバがXDM/RDの場合
(3) 分散サーバがORACLEの場合
(4) 分散サーバがRDB1 E2の場合
(5) 分散サーバがSQL/Kの場合

(1) 分散サーバがHiRDBの場合

DESCRIBE文を実行後に分散クライアントのHiRDBのSQL記述領域に設定されるデータ型と分散サーバのHiRDBのデータ型の関係を次の表に示します。

表12-7 分散サーバがHiRDBの場合のDESCRIBE文の実行後にHiRDBのSQL記述領域に設定されるデータ型

HiRDBのデータ型 HiRDBのSQL記述領域に設定
されるデータ型
説   明
INTEGER INTEGER 整数(4バイトの2進形式)
SMALLINT SMALLINT 整数(2バイトの2進形式)
DECIMAL(p,s) DECIMAL(p,s) 固定小数点数精度(全体のけた数)=p
 位取り(小数点以下のけた数)=s
  1≦p≦29,0≦s≦p
FLOAT FLOAT 倍精度浮動小数点数
SMALLFLT SMALLFLT 単精度浮動小数点数
CHAR(n) CHAR(n) 固定長文字列
VARCHAR(n) VARCHAR(n) 可変長文字列
NCHAR(n) NCHAR(n) 固定長各国文字列
NVARCHAR(n) NVARCHAR(n) 可変長各国文字列
MCHAR(n) MCHAR(n) 固定長混在文字列
MVARCHAR(n) MVARCHAR(n) 可変長混在文字列
DATE1 DATE 日付
TIME2 TIME 時刻
INTERVAL YEAR TO DAY INTERVAL YEAR TO DAY 日間隔
INTERVAL HOUR TO SECOND INTERVAL HOUR TO SECOND 時間隔
BLOB BLOB バイナリ
ROW ROW ROW型

注※1
DATE型の変数は分散クライアント機能ではサポートしていませんが,CHAR(10)型の入力変数を使用して,HiRDBへのローカルアクセスと同様にDATE型の列にアクセスできます。

注※2
TIME型の変数は分散クライアント機能ではサポートしていませんが,CHAR(8)型の入力変数を使用して,HiRDBへのローカルアクセスと同様にTIME型の列にアクセスできます。

(2) 分散サーバがXDM/RDの場合

DESCRIBE文を実行後にHiRDBのSQL記述領域に設定されるデータ型とXDM/RDのデータ型の関係を次の表に示します。

表12-8 分散サーバがXDM/RDの場合のDESCRIBE文の実行後にHiRDBのSQL記述領域に設定されるデータ型

XDM/RDのデータ型 HiRDBのSQL記述領域に
設定されるデータ型
説   明
INTEGER INTEGER 整数(4バイトの2進形式)
SMALLINT SMALLINT 整数(2バイトの2進形式)
DECIMAL(p,s) DECIMAL(p,s) 固定小数点数
 精度(全体のけた数)=p
 位取り(小数点以下のけた数)=s
  1≦p≦29,0≦s≦p
LARGE DECIMAL(p,s)
FLOAT FLOAT 倍精度浮動小数点数
SMALLFLT SMALLFLT 単精度浮動小数点数
CHAR(n) CHAR(n) 固定長文字列
VARCHAR(n) VARCHAR(n) 可変長文字列
LONG VARCHAR(n)
NCHAR(n) NCHAR(n) 固定長各国文字列
NVARCHAR(n) NVARCHAR(n) 可変長各国文字列
LONG NVARCHAR(n)
MCHAR(n) MCHAR(n) 固定長混在文字列
MVARCHAR(n) MVARCHAR(n) 可変長混在文字列
LONG MVARCHAR(n)
DATE1 DATE 日付
TIME2 TIME 時刻
INTERVAL YEAR TO DAY INTERVAL YEAR TO DAY 日間隔
INTERVAL HOUR TO SECOND INTERVAL HOUR TO SECOND 時間隔
ROW ROW ROW型

注※1
DATE型の変数は分散クライアント機能ではサポートしていませんが,CHAR(10)型の入力変数を使用して,HiRDBへのローカルアクセスと同様にDATE型の列にアクセスできます。

注※2
TIME型の変数は分散クライアント機能ではサポートしていませんが,CHAR(8)型の入力変数を使用して,HiRDBへのローカルアクセスと同様にTIME型の列にアクセスできます。

(3) 分散サーバがORACLEの場合

DESCRIBE文を実行後にHiRDBのSQL記述領域に設定されるデータ型とORACLEのデータ型の関係を次の表に示します。

表12-9 分散サーバがORACLEの場合のDESCRIBE文の実行後にHiRDBのSQL記述領域に設定されるデータ型

ORACLEのデータ型 HiRDBのSQL記述領域に
設定されるデータ型
説   明
NUMBER(p,s) DECIMAL(p,s) 固定小数点数
 精度(全体のけた数)=p
 位取り(小数点以下のけた数)=s
  1≦p≦29,0≦s≦p
NUMBER(p,s)1 DECIMAL(p,0) 固定小数点数精度(全体のけた数)=p
 位取り(小数点以下のけた数)=s
  1≦p≦29,s<0
NUMBER(p,s)2 DECIMAL(p,p) 固定小数点数精度(全体のけた数)=p
 位取り(小数点以下のけた数)=s
  1≦p≦29,s>p
NUMBER3 FLOAT 倍精度浮動小数点数
NUMBER(p,s)4 固定小数点数
 精度(全体のけた数)=p
 位取り(小数点以下のけた数)=s
  30≦p≦38,0≦s≦p
CHAR(n) CHAR(n) 固定長文字列
  n≦255
VARCHAR2(n) VARCHAR(n) 可変長文字列
  n≦2000
LONG VARCHAR(32000)5 可変長文字列
DATE6 DATE 日付
RAW データコード0 HiRDBのデータベースに該当するデータ型がないため,SQLDAにデータコード0が設定されます。
LONG LAW
ROWID
MLSLABEL

注※1
s <0の場合,DESCRIBE文の実行結果から該当する列に対してUPDATE文,又はINSERT文で入力すると,入力した値によっては丸められることがあります。

注※2
s >pの場合,DESCRIBE文の実行結果から該当する列に対してUPDATE文,又はINSERT文で入力すると,入力した値によっては精度超過のエラーになることがあります。

注※3
NUMBER型のデータの絶対値の範囲は,1.0E-129〜9.99...E125です。精度は10進数で38けたになります。FLOAT型の出力変数を使用してNUMBER型の列にアクセスできますが,数値の精度は低下します。

注※4
p>29の場合,FLOAT型の出力変数を使用してNUMBER型の列にアクセスできますが,数値の精度は低下します。

注※5
LONG型のデータは2ギガバイトまでの文字データを格納できるため,
VARCHAR(32000)型の出力変数を使用してもデータの一部しか検索できないことがあります。

注※6
DATE型の変数は分散クライアント機能ではサポートしていませんが,CHAR(10)型の入出力変数を使用して,HiRDBへのローカルアクセスと同様にDATE型の列にアクセスできます。なお,ORACLEのDATE型では,データに時刻の情報を含んでいますが,分散クライアントからアクセスできるのは日付の情報だけです。

(4) 分散サーバがRDB1 E2の場合

DESCRIBE文を実行後に分散クライアントのHiRDBのSQL記述領域に設定されるデータ型と,分散サーバのRDB1 E2のデータ型の関係を次の表に示します。

表12-10 分散サーバがRDB1 E2の場合のDESCRIBE文の実行後にHiRDBのSQL記述領域に設定されるデータ型

RDB1 E2のデータ型 HiRDBのSQL記述領域に
設定されるデータ型
説   明
INTEGER INTEGER 整数(4バイトの2進形式)
SMALLINT SMALLINT 整数(2バイトの2進形式)
DECIMAL(p,s) DECIMAL(p,s) 固定小数点数
 精度(全体のけた数)=p
 位取り(小数点以下のけた数)=s
  1≦p≦29,0≦s≦p
FLOAT FLOAT 倍精度浮動小数点数
SMALLFLT SMALLFLT 単精度浮動小数点数
CHAR(n) CHAR(n) 固定長文字列
  n≦254
VARCHAR(n) VARCHAR(n) 可変長文字列
  n≦254
LONG VARCHAR(n) VARCHAR(n) 可変長文字列
  255≦n≦4000
NCHAR(n) NCHAR(n) 固定長各国文字列
  n≦127
NVARCHAR(n) NVARCHAR(n) 可変長各国文字列
  n≦127
ROW ROW ROW型

(5) 分散サーバがSQL/Kの場合

DESCRIBE文を実行後に分散クライアントのHiRDBのSQL記述領域に設定されるデータ型と,分散サーバのSQL/Kのデータ型の関係を次の表に示します。

表12-11 分散サーバがSQL/Kの場合のDESCRIBE文の実行後にHiRDBのSQL記述領域に設定されるデータ型

SQL/Kのデータ型 HiRDBのSQL記述領域に
設定されるデータ型
説   明
INTEGER INTEGER 整数(4バイトの2進形式)
SMALLINT SMALLINT 整数(2バイトの2進形式)
DECIMAL(p,s) DECIMAL(p,s) 固定小数点数
 精度(全体のけた数)=p
 位取り(小数点以下のけた数)=s
  1≦p≦29,0≦s≦p
CHAR(n) CHAR(n) 固定長文字列
  n≦32000
CHAR(n) CHAR(32000)※1 固定長文字列
  n>32000
NCHAR(n) NCHAR(n) 固定長各国文字列
  n≦16000
NCHAR(n) NCHAR(16000)※2 固定長各国文字列
  n>16000
MCHAR(n) MCHAR(n) 固定長混在文字列
  n≦32000
MCHAR(n) MCHAR(32000)※1 固定長混在文字列
  n>32000
LARGE INT データコード0 HiRDBのデータベースに該当するデータ型がないため,SQLDAにデータコード0が設定されます。
NUMERIC TRAILING(P,S)
NUMERIC UNSIGNED(P,S)
XCHAR(n)
BIT(n)

注※1
n>32000の場合,VARCHAR(32000)型の出力変数を使用してもデータの一部しか検索できないことがあります。

注※2
n>16000の場合,NVARCHAR(16000)型の変数を使用してもデータの一部しか検索できないことがあります。