データ・タイプは、 関連するいくつかのデータ・タイプからなるグループに分類されます。 そのようなグループの中では、 あるデータ・タイプを他のデータ・タイプより優先するとみなす優先順位が存在します。 この優先順位を使用すると、あるデータ・タイプを、 優先順位がそれより上のデータ・タイプにプロモートすること (プロモーション) が可能になります。 たとえば、CHAR データ・タイプは VARCHAR に、 INTEGER は DOUBLE PRECISION にプロモートできますが、 CLOB を VARCHAR にプロモートすることはできません。
データ・タイプのプロモーションは、以下の場合に使用されます。
次の表 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 のスーパータイプの場合) | ||
上記の小文字で示したタイプは、以下のように定義されます。
リストの中のデータ・タイプの短形式および長形式の同義語は、 リストの中の同義語と同じであるとみなされます。 |