スケーラブルデータベースサーバ HiRDB Version 8 SQLリファレンス
変換(代入,比較)できるデータ型を次の表に示します。ただし,CAST指定,及びスカラ関数を使用して変換できるデータ型については,それぞれ「2.16 スカラ関数」,「2.25 CAST指定」を参照してください。
表1-5 変換(代入,比較)できるデータ型(1/2)
変換前データ型 |
変換後データ型 |
数データ |
文字データ |
各国文字データ |
混在文字データ |
日付データ |
時刻データ |
時刻印データ |
INTEGER |
CHARACTER |
NCHAR |
MCHAR |
DATE |
TIME |
TIMESTAMP |
SMALLINT |
DECIMAL |
VARCHAR |
NVARCHAR |
MVARCHAR |
FLOAT |
SMALLFLT |
DF |
EK |
U16 |
数データ
- INTEGER
- SMALLINT
- DECIMAL
- FLOAT
- SMALLFLT
|
○,○ |
○,×※1 |
×,× |
○,×※1 |
×,× |
×,× |
×,× |
文字データ
|
DF |
△,△※2※3 |
○,○ |
△,△
※14 |
△,△
※17 |
△,△※7 |
○,○ |
△,△※4 |
△,△※5 |
△,△※6 |
EK |
△,×
※15 |
○,○ |
×,× |
×,× |
×,× |
U16 |
△,△※16 |
×,× |
○,○ |
×,× |
△,△
※16 |
各国文字データ
|
×,× |
×,× |
○,○ |
×,× |
×,× |
×,× |
×,× |
混在文字データ
|
△,△※2※3 |
○,○ |
×,× |
△,△
※17 |
×,× |
○,○ |
×,× |
×,× |
×,× |
日付データ
|
×,× |
×,△※8 |
×,× |
×,× |
○,○ |
×,× |
×,× |
時刻データ
|
×,× |
×,△※9 |
×,× |
×,× |
×,× |
○,○ |
×,× |
時刻印データ
|
×,× |
×,△※10 |
×,× |
×,× |
×,× |
×,× |
○,○※11 |
日間隔データ
|
×,△※12 |
×,× |
×,× |
×,× |
×,× |
×,× |
×,× |
時間隔データ
|
×,△※13 |
×,× |
×,× |
×,× |
×,× |
×,× |
×,× |
長大データ
|
×,× |
×,× |
×,× |
×,× |
×,× |
×,× |
×,× |
バイナリデータ
|
×,× |
×,× |
×,× |
×,× |
×,× |
×,× |
×,× |
バイナリデータ
|
×,× |
×,× |
×,× |
×,× |
×,× |
×,× |
×,× |
論理データ
|
×,× |
×,× |
×,× |
×,× |
×,× |
×,× |
×,× |
抽象データ型 |
×,× |
×,× |
×,× |
×,× |
×,× |
×,× |
×,× |
- (凡例)
- ○:変換できます。
- △:制限付きで変換できます。
- ×:変換できません。
- DF:既定文字集合
- EK:EBCDIK
- U16:UTF16,UTF-16LE又はUTF-16BE
- 文字集合名UTF-16LE,UTF-16BEは,次の場合に指定してください。
- ?パラメタを介して文字コードがUTF-16のデータを操作する場合
- プリプロセスオプション,及び埋込み変数の定義に,文字コードがUTF-16のデータを操作できるように指定し,埋込み変数を介して文字コードがUTF-16のデータを操作する場合
- 文字集合UTF-16LE及びUTF-16BE(文字集合名記述領域のSQLCSNに設定できる文字集合情報)については,マニュアル「HiRDB Version 8 UAP開発ガイド」を参照してください。
- 注
- 表中の変換可否は,「代入可否,比較可否」となっています。例えば,「○,○」の場合は代入及び比較ができて,「○,×」の場合は代入はできるが比較はできないということになります。
- 注※1
- 数データを文字データに変換する場合の対応関係を次に示します。なお,変換後のデータ型が混在文字データの場合は,VARCHARをMVARCHARに,CHARをMCHARに読み替えてください。
- INTEGER型の数データは,VARCHAR(11)の文字データに変換されます。
- SMALLINT型の数データは,VARCHAR(6)の文字データに変換されます。
- DECIMAL(p,0)型の数データは,VARCHAR(p+1)の文字データに変換されます。
- DECIMAL(p,s)型の数データは,VARCHAR(p+2)の文字データに変換されます。
- FLOAT型又はSMALLFLT型の数データは,CHAR(23)の文字データに変換されます。
- INTEGER型,SMALLINT型,及びDECIMAL型での数データが正の場合,変換された文字データには正の符号は含みません。また,FLOAT型及びSMALLFLT型の数データを文字データに変換する場合,指数部と仮数部に必ず符号を付加します。
- 注※2
- 文字データと数データを比較する場合,文字データを数データに変換して比較をします。文字データと数データを比較できるのは,比較述語,限定述語,IN述語,及びBETWEEN述語です。各述語ごとの比較可能な条件を次に示します。
述語 |
比較可能な条件 |
比較述語 |
左右のどちらかが数データの場合に比較できます。 |
IN述語,限定述語 |
左側が数データの場合に比較できます。 |
BETWEEN述語 |
行値構成子1の行値構成子要素が数データの場合に比較できます。 |
- 文字データと数データを比較できるのは,以下に示す指定をした場合です。
- <文字データ>
- 定数(副問合せの選択式に指定した場合を含む)
- ?パラメタ
- 埋込み変数
- SQL変数
- SQLパラメタ
- ただし,文字データ又は数データを,以下に示す位置に指定した場合は,SQL変数,SQLパラメタで指定した文字データを,数データに変換できません。
- 行値構成子要素数が2以上である行値構成子中の行値構成子要素
- 行副問合せ,又は表副問合せの選択式
- 比較述語の右側,IN述語の右側,限定述語の右側以外に指定したスカラ副問合せの選択式
- <数データ>
- 注※3
- 文字データを数データに代入,比較する場合の対応関係を次に示します。
- 整数の文字列表現は,INTEGER型に変換されます。
- 10進数の文字列表現は,DECIMAL型に変換されます。
- 浮動小数点数の文字列表現は,FLOAT型に変換されます。
- 数の文字列表現の前後に空白がある場合,空白を無視して変換をします。
- 注※4
- 次に示すものは,日付データへの代入,及び日付データとの比較ができます。
- 日付を既定の文字列で表現した定数
- CHAR(10)に対応する埋込み変数(ただし,埋込み変数の文字集合がUTF16,UTF-16LE,又はUTF-16BEの場合はCHAR(20)に対応する埋込み変数)
- 注※5
- 次に示すものは,時刻データへの代入,及び時刻データとの比較ができます。
- 時刻を既定の文字列で表現した定数
- CHAR(8)に対応する埋込み変数(ただし,埋込み変数の文字集合がUTF16,UTF-16LE,UTF-16BEの場合はCHAR(16)に対応する埋込み変数)
- 注※6
- 次に示すものは,時刻印データとの比較,及び時刻印データへの変換ができます。
- 時刻印を既定の文字列表現で指定した定数
- 長さが19〜26バイトのCHARに対応する埋込み変数(ただし,埋込み変数の文字集合がUTF16,UTF-16LE,UTF-16BEの場合は長さが38〜52バイトのCHARで,長さが2の倍数に対応する埋込み変数)
- 注※7
- 定義系SQLを除く,次に示す項目で文字列定数を記述した場合,各国文字列定数とみなし,文字データの長さだけをチェックし,文字コードはチェックしません。
- INSERT文,及びUPDATE文については,「4. 操作系SQL」を,探索条件については,「2.7 探索条件」を参照してください。
- 注※8
- 次に示すものは,日付データと比較できます。
- 日付を既定の文字列で表現した定数
- CHAR(10)に対応する埋込み変数(ただし,埋込み変数の文字集合がUTF16,UTF-16LE,又はUTF-16BEの場合はCHAR(20)に対応する埋込み変数)
- また,次の場合は,文字データに変換できます。
- 日付データを,長さが10バイト以上のCHAR,又はVARCHARの埋込み変数に代入した場合(ただし,埋込み変数の文字集合がUTF16,UTF-16LE,又はUTF-16BEの場合は,長さが20バイト以上で長さが2の倍数のCHAR,又はVARCHARの埋込み変数に代入した場合)
- 注※9
- 次に示すものは,時刻データと比較できます。
- 時刻を既定の文字列で表現した定数
- CHAR(8)に対応する埋込み変数(ただし,埋込み変数の文字集合がUTF16,UTF-16LE,又はUTF-16BEの場合はCHAR(16)に対応する埋込み変数)
- また,次の場合は,文字データに変換できます。
- 時刻データを,長さが8バイト以上のCHAR,又はVARCHARの埋込み変数に代入した場合(ただし,埋込み変数の文字集合がUTF16,UTF-16LE,又はUTF-16BEの場合は,長さが16バイト以上で長さが2の倍数のCHAR,又はVARCHARの埋込み変数に代入した場合)
- 注※10
- 次に示すものは,時刻印データと比較できます。
- 時刻印を既定の文字列表現で指定した定数
- 長さが19〜26バイトのCHARに対応する埋込み変数(ただし,埋込み変数の文字集合がUTF16,UTF-16LE,又はUTF-16BEの場合は長さが38〜52バイトで長さが2の倍数のCHARに対応する埋込み変数)
- また,次の場合は文字データに代入できます。
- 変換前の時刻印データの小数秒精度をpとした場合,p=0の場合は19バイト以上,p>0の場合は20+pバイト以上の,CHAR又はVARCHARの埋込み変数への代入(ただし,埋込み変数の文字集合がUTF16,UTF-16LE,又はUTF-16BEの場合は,変換前の時刻印データの小数秒精度をpとした場合,p=0の場合は38バイト以上,p>0の場合は40+2pバイト以上で長さが2の倍数の,CHAR又はVARCHARの埋込み変数への代入)
- 注※11
- 代入元の小数秒精度が代入先の小数秒精度より高い場合,代入先の精度に合わせて小数行部分を切り捨てます。代入元の小数秒精度が代入先の代入先の小数秒精度より低い場合,代入先の精度に合わせて拡張した小数秒部分に0を補って格納します。
- 注※12
- 次に示すものは,日間隔データと比較できます。
- 日間隔を10進数で表現した定数
- DECIMAL(8,0)に対応する埋込み変数
- また,次の場合は,10進数データに変換できます。
- 日間隔データを,DECIMAL(8,0)の埋込み変数に代入した場合
- 注※13
- 次に示すものは,時間隔データと比較できます。
- 時間隔を10進数で表現した定数
- DECIMAL(6,0)に対応する埋込み変数
- また,次の場合は,10進数データに代入できます。
- 時間隔データを,DECIMAL(6,0)の埋込み変数に代入した場合
- 注※14
- 変換前の項目として次に示すものは,代入対象,比較対象の文字集合に変換するため,代入,比較できます。
- 注※15
- 変換後の項目として次に示すものは,代入対象の文字集合に変換するため,代入できます。
- 注※16
- 変換後の項目として次に示すものは,代入対象,比較対象の文字集合に変換するため,代入,比較できます。
- 変換前の項目として次に示すものは,代入対象,比較対象の既定文字集合に変換するため,代入,比較できます。
- 埋込み変数(UTF16,UTF-16LE,又はUTF-16BE)
- 注※17
- 変換前の項目として次に示すものは,代入対象,比較対象の文字集合に変換するため,代入,比較できます。
- 変換後の項目として次に示すものは,代入対象の文字集合に変換するため,代入できます。
- (凡例)
- ○:変換できます。
- △:制限付きで変換できます。
- ×:変換できません。
- DF:既定文字集合
- EK:EBCDIK
- U16:UTF16,UTF-16LE又はUTF-16BE
- 注
- 表中の変換可否は,「代入可否,比較可否」となっています。例えば,「○,○」の場合は代入及び比較ができて,「○,×」の場合は代入はできるが比較はできないということになります。
- 注※1
- 次に示すものは,日間隔データへの代入,及び日間隔データとの比較ができます。
- 日間隔を10進数で表現した定数
- DECIMAL(8,0)に対応する埋込み変数
- 注※2
- 次に示すものは,時間隔データへの代入,及び時間隔データとの比較ができます。
- 時間隔を10進数で表現した定数
- DECIMAL(6,0)に対応する埋込み変数
- 注※3
- 次に示すものは,BINARY型への代入,及びBINARY型との比較ができます。
- 注※4
- 日間隔データ同士の比較は,年,月,日の順で比較します。
- 注※5
- 時間隔データ同士の比較は,時,分,秒の順で比較します。
- 注※6
- 抽象データ型ADT2で定義された列,変数に対して,抽象データ型ADT1がADT2の値又はADT2のサブタイプの値の場合に,代入できます。
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.