SQL 解説書

データ・タイプのプロモーション

データ・タイプは、 関連するいくつかのデータ・タイプからなるグループに分類されます。 そのようなグループの中では、 あるデータ・タイプを他のデータ・タイプより優先するとみなす優先順位が存在します。 この優先順位を使用すると、あるデータ・タイプを、 優先順位がそれより上のデータ・タイプにプロモートすること (プロモーション) が可能になります。 たとえば、CHAR データ・タイプは VARCHAR に、 INTEGER は DOUBLE PRECISION にプロモートできますが、 CLOB を VARCHAR にプロモートすることはできません。

データ・タイプのプロモーションは、以下の場合に使用されます。

次の表 5 に、 各データ・タイプの優先順位順のリストを示します。 特定のデータ・タイプのプロモート先として可能なデータ・タイプを調べたいとき、 この表を使うことができます。 この表に示されているとおり、最適の選択は、 別のデータ・タイプへプロモートすることではなく、 常に同じデータ・タイプです。

表 5. データ・タイプの優先順位表
データ・タイプ データ・タイプ優先順位リスト (高いものから順に)
CHAR CHAR、VARCHAR、LONG VARCHAR、CLOB
VARCHAR VARCHAR、LONG VARCHAR、CLOB
LONG VARCHAR LONG VARCHAR、CLOB
GRAPHIC GRAPHIC、VARGRAPHIC、LONG VARGRAPHIC、DBCLOB
VARGRAPHIC VARGRAPHIC、LONG VARGRAPHIC、DBCLOB
LONG VARGRAPHIC LONG VARGRAPHIC、DBCLOB
BLOB BLOB
CLOB CLOB
DBCLOB DBCLOB
SMALLINT SMALLINT、INTEGER、BIGINT、decimal、real、double
INTEGER INTEGER、BIGINT、decimal、real、double
BIGINT BIGINT、decimal、real、double
decimal decimal、real、double
real real、double
double double
DATE DATE
TIME TIME
TIMESTAMP TIMESTAMP
DATALINK DATALINK
udt udt (同じ名前) または udt のスーパータイプ
REF(T) REF(S) (S が T のスーパータイプの場合)
注:

上記の小文字で示したタイプは、以下のように定義されます。

decimal
= DECIMAL(p,s) または NUMERIC(p,s)

real
= REAL または FLOAT(n)。ここで、 n は 24 を超えない値。

double
= DOUBLE、DOUBLE PRECISION、FLOAT または FLOAT(n)。 ここで、n は 25 以上。

udt
= ユーザー定義タイプ

リストの中のデータ・タイプの短形式および長形式の同義語は、 リストの中の同義語と同じであるとみなされます。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]