SQL 解説書

データ・タイプ間のキャスト

特定のデータ・タイプの値を別のデータ・タイプへ、 またはデータ・タイプは同じでも長さ、精度、 または位取りが異なるデータ・タイプへキャスト する必要がよく生じます。 データ・タイプのプロモーション (データ・タイプのプロモーションで定義されている) は、 あるデータ・タイプから別のデータ・タイプへのプロモーションにおいて、 値を新しいデータ・タイプへキャストすることが必要になる 1 つの例です。 別のデータ・タイプへキャストできるデータ・タイプは、 ソース・データ・タイプから宛先データ・タイプへキャスト可能 であるといいます。

データ・タイプ間でのキャストは、 CAST 仕様 (CAST 指定を参照) を使用して明示的に行うことができますが、 ユーザー定義タイプを含む割り当て (ユーザー定義タイプの割り当てを参照) の過程で暗黙的に行われる場合もあります。 また、ソース関数から派生するユーザー定義関数を作成するとき (CREATE FUNCTIONを参照) は、 ソース関数のパラメーターのデータ・タイプが、 作成しようとしている関数のデータ・タイプにキャスト可能なものでなければなりません。

組み込みデータ・タイプの間でサポートされているキャストを、 表 6 に示します。

特殊タイプに関する以下のキャストがサポートされています。

構造タイプの値を何か別のものにキャストすることはできません。 ST のスーパータイプに対するすべてのメソッドは、 ST に当てはまるので、構造タイプ ST を、 そのスーパータイプのいずれかにキャストすべきではありません。 必要な操作が ST のサブタイプだけに当てはまる場合、 サブタイプ処理式を使用して、ST をサブタイプの 1 つとして扱います。 詳しくは、サブタイプの扱いを参照してください。

キャストに含まれるユーザー定義データ・タイプがスキーマ名によって修飾されていない場合、 SQL パス が、 ユーザー定義データ・タイプを含む最初のスキーマをその名前で検出するために使用されます。 SQL パスについては、CURRENT PATH を参照してください。

参照タイプに関して、以下のキャストがサポートされています。

キャストに含まれる参照データ・タイプのターゲット・タイプがスキーマ名によって修飾されていない場合、 SQL パス が、 ユーザー定義データ・タイプを含む最初のスキーマをその名前で検出するために使用されます。 SQL パスについては、CURRENT PATH を参照してください。

表 6. 組み込みデータ・タイプ間のサポートされるキャスト

ターゲット・データ・タイプ >






ソース・データ・タイプ V


S
M
A
L
L
I
N
T


I
N
T
E
G
E
R


B
I
G
I
N
T


D
E
C
I
M
A
L


R
E
A
L


D
O
U
B
L
E


C
H
A
R


V
A
R
C
H
A
R


L
O
N
G
V
A
R
C
H
A
R


C
L
O
B


G
R
A
P
H
I
C


V
A
R
G
R
A
P
H
I
C


L
O
N
G
V
A
R
G


D
B
C
L
O
B


D
A
T
E


T
I
M
E


T
I
M
E
S
T
A
M
P


B
L
O
B

SMALLINT Y Y Y Y Y Y Y - - - - - - - - - - -
INTEGER Y Y Y Y Y Y Y - - - - - - - - - - -
BIGINT Y Y Y Y Y Y Y - - - - - - - - - - -
DECIMAL Y Y Y Y Y Y Y - - - - - - - - - - -
REAL Y Y Y Y Y Y - - - - - - - - - - - -
DOUBLE Y Y Y Y Y Y - - - - - - - - - - - -
CHAR Y Y Y Y - - Y Y Y Y - Y - - Y Y Y Y
VARCHAR Y Y Y Y - - Y Y Y Y - Y - - Y Y Y Y
LONG VARCHAR - - - - - - Y Y Y Y - - - - - - - Y
CLOB - - - - - - Y Y Y Y - - - - - - - Y
GRAPHIC - - - - - - - - - - Y Y Y Y - - - Y
VARGRAPHIC - - - - - - - - - - Y Y Y Y - - - Y
LONG VARG - - - - - - - - - - Y Y Y Y - - - Y
DBCLOB - - - - - - - - - - Y Y Y Y - - - Y
DATE - - - - - - Y Y - - - - - - Y - - -
TIME - - - - - - Y Y - - - - - - - Y - -
TIMESTAMP - - - - - - Y Y - - - - - - Y Y Y -
BLOB - - - - - - - - - - - - - - - - - Y
  • ユーザー定義タイプおよび参照タイプに関してサポートされているキャストについては、 この表の前にある説明を参照してください。
  • DATALINK タイプにキャストできるのは DATALINK タイプだけです。
  • 構造タイプの値を何か別のものにキャストすることはできません。


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