このトピックでは、 データ・タイプの組み合わせでサポートされる CAST についてリストします。
CAST は、データ・タイプのすべての組み合わせでサポートされるわけではありません。 サポートされる CAST とその効果を以下にリストします。
ソース・データ・タイプ | ターゲット・データ・タイプ | 効果 |
---|---|---|
BIT | BIT | 結果は入力と同じです。 |
BIT | BLOB | ビット配列は、 エレメント数が最大で 263 個のバイト配列に変換されます。 ソースの長さが BLOB となるために適切でない場合 (8 の倍数でない場合)、 エラーが報告されます。 |
BIT | CHARACTER | 結果は、ビット・ストリング・リテラルの定義に準拠するストリングになり、
解釈された値は、ソース値と同じになります。
結果ストリングは、B'bbbbbb' (b は 0 か 1) という形式になります。
CCSID 文節または ENCODING 文節のいずれかを指定した場合、 指定されたビット配列は、指定された CCSID およびエンコード方式の文字であると見なされ、 コード・ページが変換されて文字戻り値に入れられます。 CCSID のみを指定する場合、 ビッグ・エンディアン・エンコード方式と見なされます。 エンコード方式だけが指定する場合、CCSID は 1208 になります。 コード・ページまたはエンコード方式が未知のものである場合、 またはデータがコード・ページでは文字数が整数にならない長さである場合、 またはデータの中に指定されたコード・ページでは無効な文字が含まれていた場合、 この関数は変換エラーを報告します。 |
BIT | INTEGER | ビット配列は、エレメント数が最大で 263 であり、整数に変換されます。 ソースが整数として適切な長さでない場合、エラーが報告されます。 |
BLOB | BIT | 指定されたバイト配列は、 エレメント数が最大で 263 個のビット配列に変換されます。 |
BLOB | BLOB | 結果は入力と同じです。 |
BLOB | CHARACTER | 結果は、バイナリー・ストリング・リテラルの定義に準拠するストリングになり、
解釈された値は、ソース値と同じになります。
結果ストリングは、X'hhhh' (h は任意の 16 進文字) という形式になります。
CCSID 文節または ENCODING 文節のいずれかを指定した場合、 指定されたバイト配列は、指定された CCSID およびエンコード方式の文字であると見なされ、 コード・ページが変換されて文字戻り値に入れられます。 CCSID のみを指定する場合、 ビッグ・エンディアン・エンコード方式と見なされます。 エンコード方式だけが指定する場合、CCSID は 1208 になります。 コード・ページまたはエンコード方式が未知のものである場合、 またはデータがコード・ページでは文字数が整数にならない長さである場合、 またはデータの中に指定されたコード・ページでは無効な文字が含まれていた場合、 この関数は変換エラーを報告します。 |
BLOB | INTEGER | バイト配列は、エレメント数が最大で 263 であり、整数に変換されます。 ソースが整数として適切な長さでない場合、エラーが報告されます。 |
BOOLEAN | BOOLEAN | 結果は入力と同じです。 |
BOOLEAN | CHARACTER | ソース値が TRUE の場合、結果は文字ストリング TRUE になります。 ソース値が FALSE の場合、結果は文字ストリング FALSE になります。 ブールでは、UNKNOWN というブール値は NULL 値と同じであるので、 ソース値が UNKNOWN の場合、結果は NULL 文字ストリング値になります。 |
CHARACTER | BIT | 文字ストリングは、ビット・ストリング・リテラルの規則またはビット・ストリング・リテラルの内容の規則に準拠していなければなりません。
つまり、文字ストリングは、
B'bbbbbbb' か bbbbbb (b は 0 か 1) のどちらかです。
CCSID 文節または ENCODING 文節だけを指定する場合、 文字ストリングは指定された CCSID とエンコード方式に変換され、 それ以外の変換は実施されることなくビット配列戻り値に入れられます。 CCSID のみを指定する場合、 ビッグ・エンディアン・エンコード方式と見なされます。 エンコード方式だけが指定する場合、CCSID は 1208 になります。 コード・ページまたはエンコード方式が未知のものである場合、 またはデータの中に、指定されたコード・ページには変換できない UNICODE 文字が含まれていた場合、 この関数は変換エラーを報告します。 |
CHARACTER | BLOB | 文字ストリングは、バイナリー・ストリング・リテラルの規則またはバイナリー・ストリング・リテラルの内容の規則に準拠していなければなりません。
つまり、文字ストリングは、X'hhhhhh' か hhhhhh (h は任意の 16 進文字) のどちらかです。
CCSID 文節または ENCODING 文節だけを指定する場合、 文字ストリングは指定された CCSID とエンコード方式に変換され、 それ以外の変換は実施されることなくバイト配列戻り値に入れられます。 CCSID のみを指定する場合、 ビッグ・エンディアン・エンコード方式と見なされます。 エンコード方式だけが指定する場合、CCSID は 1208 になります。 コード・ページまたはエンコード方式が未知のものである場合、 またはデータの中に、指定されたコード・ページには変換できない UNICODE 文字が含まれていた場合、 この関数は変換エラーを報告します。 |
CHARACTER | BOOLEAN | 文字ストリングは、ブール・リテラルと同じ方法で解釈されます。 つまり、文字ストリングは、ストリング TRUE、FALSE、 または UNKNOWN (大文字小文字の組み合わせは自由) のいずれかでなければならないということです。 |
CHARACTER | CHARACTER | 結果は入力と同じです。 |
CHARACTER | DATE | 文字ストリングは、日付リテラルまたは日付ストリングの規則に準拠していなければなりません。 つまり、文字ストリングは、DATE '2002-10-05' か 2002-10-05 のどちらかです。 |
CHARACTER | DECIMAL | 文字ストリングは、正確な数値リテラルが、
ストリングの形式で定義される位取りと精度を使用した一時的な 10 進数を形成するために解釈されるのと同じ方法で解釈されます。
これは、指定した精度と位取りの 10 進数に変換されます。
変換の結果、有効数字が失われる場合は、実行時エラーが生成されます。
精度と位取りを指定しない場合は、 指定された値を保持するのに最低限必要な精度および位取りが設定されます。 |
CHARACTER | FLOAT | 文字ストリングは、浮動小数点リテラルと同じ方法で解釈されます。 |
CHARACTER | GMTTIME | 文字ストリングは、GMT 時刻リテラルまたは時刻ストリングの規則に準拠していなければなりません。 つまり、文字ストリングは、GMTTIME '09:24:15' か 09:24:15 のどちらかです。 |
CHARACTER | GMTTIMESTAMP | 文字ストリングは、GMT タイム・スタンプ・リテラルまたはタイム・スタンプ・ストリングの規則に準拠していなければなりません。 つまり、文字ストリングは、GMTTIMESTAMP '2002-10-05 09:24:15' か 2002-10-05 09:24:15 のどちらかです。 |
CHARACTER | INTEGER | 文字ストリングは、整数リテラルと同じ方法で解釈されます。 |
CHARACTER | INTERVAL | 文字ストリングは、CAST 指定で指定したのと同じインターバル修飾子をもつインターバル・リテラルの規則に準拠していなければなりません。 あるいは、指定したインターバル修飾子に適用されるインターバル・ストリングの規則に準拠していなければなりません。 |
CHARACTER | TIME | 文字ストリングは、時刻リテラルまたは時刻ストリングの規則に準拠していなければなりません。 つまり、文字ストリングは、TIME '09:24:15' か 09:24:15 のどちらかです。 |
CHARACTER | TIMESTAMP | 文字ストリングは、タイム・スタンプ・リテラルまたはタイム・スタンプ・ストリングの規則に準拠していなければなりません。 つまり、文字ストリングは、TIMESTAMP '2002-10-05 09:24:15' か 2002-10-05 09:24:15 のどちらかです。 |
DATE | CHARACTER | 結果は、日付リテラルの定義に準拠するストリングになり、解釈された値は、ソース日付値と同じになります。
以下に例を示します。
CAST(DATE '2002-10-05' AS CHAR) DATE '2002-10-05'を戻します。 |
DATE | DATE | 結果は入力と同じです。 |
DECIMAL | CHARACTER | 結果は、正確な数値リテラルの定義に準拠する最短の文字ストリングになり、 解釈された値は 10 進数形式の値になります。 |
DECIMAL | DECIMAL | 値は、指定された精度と位取りに変換されます。 変換の結果、有効数字が失われる場合は、実行時エラーが生成されます。 精度と位取りを指定しない場合は、値、精度と位取りは元のままです。 NOOP (ノーオペレーション) です。 |
DECIMAL | FLOAT | 数値は、必要に応じて丸められて変換されます。 |
DECIMAL | INTEGER | 値は四捨五入して整数に変換され、 変換の結果として有効数字が失われる場合は、実行時エラーが生成されます。 |
DECIMAL | INTERVAL | 指定したインターバル修飾子のフィールドが 1 つだけの場合は、 結果は、その修飾子をもつインターバルとなり、修飾子のフィールドは正確な数値と等しくなります。 それ以外の場合は、実行時エラーが生成されます。 |
FLOAT | CHARACTER | 結果は、近似数値リテラルの定義に準拠する最短の文字ストリングになり、 小数部は 0 ではない 1 つの数字と、 その後ろにピリオドと符号なし整数が続くという構成になっており、 解釈された値は浮動形式の値になります。 |
FLOAT | FLOAT | 結果は入力と同じです。 |
FLOAT | DECIMAL | 値は、四捨五入され、指定した精度と位取りの 10 進数に変換されます。 変換の結果、有効数字が失われる場合は、実行時エラーが生成されます。 精度と位取りを指定しない場合は、 指定された値を保持するのに最低限必要な精度および位取りが設定されます。 |
FLOAT | INTEGER | 値は四捨五入して整数に変換され、 変換の結果として有効数字が失われる場合は、実行時エラーが生成されます。 |
GMTTIME | CHARACTER | 結果は、GMTTIME リテラルの定義に準拠するストリングになり、解釈された値は、ソース値と同じになります。 結果ストリングは、GMTTIME 'hh:mm:ss' という形式になります。 |
GMTTIME | GMTTIME |
結果は入力と同じです。 |
GMTTIME | TIME | 結果の値は、ソース値にローカル時間帯変位 (LOCAL_TIMEZONE によって戻される) を足した値になります。 時フィールドは、モジュロ 24 として計算されます。 |
GMTTIMESTAMP | CHARACTER | 結果は、GMTTIMESTAMP リテラルの定義に準拠するストリングになり、解釈された値は、ソース値と同じになります。 結果ストリングは、GMTTIMESTAMP 'yyyy-mm-dd hh:mm:ss' という形式になります。 |
GMTTIMESTAMP | GMTTIMESTAMP | 結果は入力と同じです。 |
GMTTIMESTAMP | TIMESTAMP | 結果の値は、ソース値にローカル時間帯変位 (LOCAL_TIMEZONE によって戻される) を足した値になります。 |
INTEGER | BIT | 指定された整数は、 エレメント数が最大で 263 個のビット配列に変換されます。 |
INTEGER | BLOB | 指定された整数は、 エレメント数が最大で 263 個のバイト配列に変換されます。 |
INTEGER | CHARACTER | 結果は、正確な数値リテラルの定義に準拠する最短の文字ストリングになり、 解釈された値は整数の値になります。 |
INTEGER | FLOAT | 数値は、必要に応じて丸められて変換されます。 |
INTEGER | INTEGER | 結果は入力と同じです。 |
INTEGER | DECIMAL | この値は、指定した精度と位取りの 10 進数に変換されます。 変換の結果、有効数字が失われる場合は、実行時エラーが生成されます。 精度と位取りを指定しない場合は、 指定された値を保持するのに最低限必要な精度および位取りが設定されます。 |
INTEGER | INTERVAL | 指定したインターバル修飾子のフィールドが 1 つだけの場合は、 結果は、その修飾子をもつインターバルとなり、修飾子のフィールドは正確な数値と等しくなります。 それ以外の場合は、実行時エラーが生成されます。 |
INTERVAL | CHARACTER | 結果は、INTERVAL リテラルの定義に準拠するストリングになり、
解釈された値は、ソース・インターバル値と同じになります。
以下に例を示します。
CAST(INTERVAL '4' YEARS AS CHAR) INTERVAL '4' YEARSを戻します。 |
INTERVAL | DECIMAL | インターバル値の修飾子にフィールドが 1 つしかない場合、 結果は、値に指定された精度および位取りの 10 進数になります。 変換の結果、有効数字が失われる場合は、実行時エラーが生成されます。 インターバル値の修飾子のフィールドが複数ある場合 (YEAR TO MONTH など) は、 実行時エラーが生成されます。 精度と位取りを指定しない場合は、 指定された値を保持するのに最低限必要な精度および位取りが設定されます。 |
INTERVAL | INTEGER | インターバル値の修飾子のフィールドが 1 つだけの場合は、結果はその値をもつ整数になります。 インターバル値の修飾子のフィールドが複数ある場合 (YEAR TO MONTH など) は、 実行時エラーが生成されます。 |
INTERVAL | INTERVAL | 結果は入力と同じです。
年 - 月のインターバルは年 - 月のインターバルにのみ、 また、日 - 秒のインターバルは日 - 秒のインターバルにしか変換できません。 ソース・インターバルはスカラーに変換され、 その際の単位は、ターゲット・インターバル修飾子の最小の有効フィールドの単位になります。 この値は、ターゲット・インターバル修飾子を使用したインターバルに正規化されます。 たとえば、MINUTE TO SECOND という修飾子のインターバルを、 DAY TO HOUR という修飾子のインターバルに変換するには、 ソース値が時間単位のスカラーに変換され、次いでその値は、 DAY TO HOUR という修飾子のインターバルに正規化されます。 |
TIME | CHARACTER | 結果は、TIME リテラルの定義に準拠するストリングになり、
解釈された値は、ソース時刻値と同じになります。
以下に例を示します。
CAST(TIME '09:24:15' AS CHAR) TIME '09:24:15'を戻します。 |
TIME | GMTTIME | 結果の値は、ソース値からローカル時間帯変位 (LOCAL_TIMEZONE によって戻される) を引いた値になります。 時フィールドは、モジュロ 24 として計算されます。 |
TIME | TIME | 結果は入力と同じです。 |
TIME | TIMESTAMP | 結果は、現在日付を基にした日付フィールドと、 ソース時刻値を基にした時刻フィールドをもつ値になります。 |
TIMESTAMP | CHARACTER | 結果は、TIMESTAMP リテラルの定義に準拠するストリングになり、
解釈された値は、ソース・タイム・スタンプ値と同じになります。
以下に例を示します。
CAST(TIMESTAMP '2002-10-05 09:24:15' AS CHAR) TIMESTAMP '2002-10-05 09:24:15'を戻します。 |
TIMESTAMP | DATE | 結果は、ソース・タイム・スタンプ値の日付フィールドで構成されるフィールドをもつ値になります。 |
TIMESTAMP | GMTTIMESTAMP | 結果の値は、ソース値からローカル時間帯変位 (LOCAL_TIMEZONE によって戻される) を引いた値になります。 |
TIMESTAMP | TIME | 結果は、ソース・タイム・スタンプ値の時刻フィールドで構成されるフィールドをもつ値になります。 |
TIMESTAMP | TIMESTAMP | 結果は入力と同じです。 |
precision、scale、 および interval qualifier については、 ESQL データ・タイプをご覧ください。
注意 |
商標 |
ダウンロード |
ライブラリー |
技術サポート |
フィードバック
![]() ![]() |
ak05680_ |