キャスト (SSIS)

式のあるデータ型を別のデータ型に明示的に変換します。キャスト演算子は、切り捨て演算子としても機能できます。

構文


(type_spec) expression
        

引数

type_spec

有効な SSIS データ型です。

expression

有効な式です。

戻り値の型

type_spec のデータ型です。詳細については、「Integration Services のデータ型」を参照してください。

解説

次の図は、有効なキャスト演算を示しています。

データ型間の有効および無効なキャスト

一部のデータ型にキャストする場合、パラメータが必要となります。次の表に、パラメータが必要なデータ型とそのパラメータの一覧を示します。

データ型 パラメータ

DT_STR

charcount

codepage

(DT_STR,30,1252) は、1252 コード ページを使用して、30 バイトまたは 30 文字を DT_STR データ型にキャストします。

DT_WSTR

Charcount

(DT_WSTR,20) は、20 バイト ペアまたは 20 Unicode 文字を DT_WSTR データ型にキャストします。

DT_BYTES

Bytecount

(DT_BYTES,50) は、50 バイトを DT_BYTES データ型にキャストします。

DT_DECIMAL

Scale

(DT_DECIMAL,2) は、数値を小数点以下 2 桁の DT_DECIMAL データ型にキャストします。

DT_NUMERIC

Precision

Scale

(DT_NUMERIC,10,3) は、数値を有効桁数 10 桁で小数点以下 3 桁の DT_NUMERIC データ型にキャストします。

DT_TEXT

Codepage

(DT_TEXT,1252) は、1252 コード ページを使用して、値を DT_TEXT データ型にキャストします。

日付にキャスト演算子を使用する際には、特別な注意が必要です。

  • 文字列を DT_DATE にキャストする場合、またはその逆のキャストを行う場合、変換のロケールが使用されます。

    ms141704.note(ja-jp,SQL.90).gifメモ :
    ロケールで別の形式に設定されている場合でも、日付は、YYYY-MM-DD の ISO 形式となります。

    文字列を DT_DATE 以外の日付データ型にキャストする場合、結果は次のようになります。

    データ型 日付形式

    DT_DBDATE

    yyyy-mm-dd

    DT_FILETIME

    yyyy-mm-dd hh:mm:ss:fff

    DT_DBTIME

    hh:mm:ss

    DT_DBTIMESTAMP

    yyyy-mm-dd hh:mm:ss:fffffffff

DT_FILETIME の日付形式で、fff は 0 から 999 までの値です。この形式は、Windows の SYSTEMTIME データ型と同じです。

DT_DBTIMESTAMP の日付形式で、fffffffff は 0 から 999999999 までの値です。

コード ページがマルチバイト文字の場合、バイト数と文字数は異なる場合があります。DT_WSTR データ型から同じ charcount 値の DT_STR データ型にキャストすると、変換された文字列で最後の文字が切り捨てられる場合があります。変換先のテーブルの列で十分なストレージが使用できる場合、charcount パラメータの値は、マルチバイト コード ページで必要となるバイト数を反映するように設定します。たとえば、936 コード ページを使用して、文字データを DT_STR データ型にキャストする場合、データに含まれると考えられる文字数の 2 倍の値を charcount に設定する必要があります。また、UTF-8 コード ページを使用して文字データをキャストする場合、charcount は、予想される文字数の 4 倍の値に設定する必要があります。

この例では、数値を整数にキャストします。

(DT_I4) 3.57

この例では、1252 コード ページを使用して整数を文字列にキャストします。

(DT_STR,1,1252)5

この例では、3 文字の文字列を 2 バイト文字にキャストします。

(DT_WSTR,3)"Cat"

この例では、整数を小数点以下 2 桁の 10 進数にキャストします。

(DT_DECIMAl,2)500

この例では、整数を有効桁数 7 桁で小数点以下 3 桁の数値にキャストします。

(DT_NUMERIC,7,3)4000

この例では、nvarchar データ型で定義され、長さが 50 の FirstName 列の値を、1252 コード ページを使用して文字列にキャストします。

(DT_STR,50,1252)FirstName

この例は、文字リテラル "True" をブール型にキャストします。

(DT_BOOL)"True"

参照

概念

演算子の優先順位と結合規則

その他の技術情報

演算子 (SSIS)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手