SQL 解説書

CAST 指定

 
 cast-specification
 
|--CAST--(--+-expression-------+--AS--data-type----------------->
            +-NULL-------------+
            '-parameter-marker-'
 
>----+-----------------------------------+---)------------------|
     |       (1)                         |
     '-SCOPE-------+-typed-table-name-+--'
                   '-typed-view-name--'
 

注:

  1. SCOPE 文節が適用されるのは、REF データ・タイプだけです。

CAST 指定は、データ・タイプ によって指定されたタイプにキャストされたキャスト・オペランド (第 1 オペランド) を戻します。

expression
キャスト・オペランドが式 (パラメーター・マーカーまたは NULL ではなく) である場合、 結果は、指定された目的データ・タイプ に変換された引き数値です。

サポートされるキャストについては 表 6 に記載されています。 この表では、第 1 列がキャスト・オペランドのデータ・タイプ (ソース・データ・タイプ) を表し、 上部に横方向に示したデータ・タイプが CAST 指定の目的データ・タイプを表します。 サポートされていないキャストを実行すると、エラー (SQLSTATE 42846) になります。

文字ストリング (CLOB 以外) を長さの異なる文字ストリングにキャストするとき、 後続ブランク以外の文字が切り捨てられると、警告 (SQLSTATE 01004) が戻されます。 漢字ストリング (DBCLOB 以外) を長さの異なる漢字ストリングにキャストするとき、 後続ブランク以外の文字が切り捨てられると、警告 (SQLSTATE 01004) が戻されます。 キャスト・オペランドが BLOB、CLOB、および DBCLOB の場合、 何らかの文字が切り捨てられると警告が発行されます。

NULL
キャスト・オペランドがキーワード NULL である場合、結果は、 指定されたデータ・タイプ のヌル値です。

parameter-marker
パラメーター・マーカー (疑問符で指定されるもの) は通常は式としてみなされますが、 ここでは特別な意味をもつため別個に説明します。 キャスト・オペランドがパラメーター・マーカー である場合、 指定されたデータ・タイプ は、 指定されたデータ・タイプに置き換えが割り当て可能である (ストリングの記憶割り当てを使用して) ことを示す合意であるとみなされます。

このようなパラメーター・マーカーは、 タイプ付きパラメーター・マーカー とみなされます。 タイプ付きパラメーター・マーカーは、関数解決、選択リストの DESCRIBE、 または列割り当てを行う目的で、他のタイプ付き値と同じように扱われます。

data type
既存のデータ・タイプの名前。 このタイプ名が修飾されていない場合は、 SQL パスを使用してデータ・タイプが解決されます。 長さ、精度、および位取りなどの関連する属性を伴うデータ・タイプには、 データ・タイプ の指定時にこのような属性を組み込む必要があります (指定されていない場合、 CHAR は長さ 1 にデフォルト解釈され、 DECIMAL は精度 5 および位取り 0 にデフォルト解釈されます)。 サポートされるデータ・タイプに関する制限は、 指定したキャスト・オペランドに基づいて適用されます。

SCOPE
データ・タイプが参照タイプの場合、 効力範囲は参照のターゲット表またはターゲット視点を識別するように定義することができます。

typed-table-name
タイプ付き表の名前。 表名はすでに指定されていなければなりません (SQLSTATE 42704)。 キャストは data-type REF(S) にするものでなければなりません。 ここでの Styped-table-name (SQLSTATE 428DM) のタイプを表しています。

typed-view-name
タイプ付き視点の名前。 その視点は存在しているか、 あるいは視点定義の一部としてキャストを含むように作成されている視点と同じ名前でなければなりません。 キャストは data-type REF(S) にするものでなければなりません。 ここでの Styped-view-name (SQLSTATE 428DM) のタイプを表しています。

数値データを文字にキャストする場合、 結果のデータ・タイプは固定長文字ストリングです (CHARを参照)。 文字データを数値にキャストする場合、 結果のデータ・タイプは指定した数値のタイプによって異なります。 たとえば整数へのキャストの場合、 結果のデータ・タイプは長精度整数になります (INTEGERを参照)。

例:


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