Integration Services のデータ型
更新 : 2007 年 9 月 15 日
データがパッケージ内のデータ フローに入ると、データを抽出する変換元は、そのデータを Integration Services のデータ型に変換します。数値データは数値データ型、文字列データは文字列データ型、および日付データは日付データ型に割り当てられます。GUID やバイナリ ラージ オブジェクト (BLOB) などの他のデータも、同様に適切な Integration Services のデータ型に割り当てられます。データのデータ型が Integration Services のデータ型に変換できない場合は、エラーが発生します。
一部のデータ フロー コンポーネントでは、Integration Services データ型と Microsoft .NET Framework のマネージ データ型の間でデータ型を変換します。Integration Services データ型とマネージ データ型の間のマッピングの詳細については、「データ フローでのデータ型のマッピング」を参照してください。
次の表に、Integration Services のデータ型を一覧で示します。
データ型 | 説明 |
---|---|
DT_BOOL |
ブール値です。 |
DT_BYTES |
バイナリ データ値です。データ長は可変で、最大長は 8,000 バイトです。 |
DT_CY |
通貨値です。このデータ型は、8 バイトの符号付き整数で、小数点以下桁数が 4、最大有効桁数は 19 です。 |
DT_DATE |
年、月、日、および時間で構成される日付の構造体です。 DT_DATE データ型は、8 バイトの浮動小数点数を使用して実装されます。年、月、日は、1899 年 12 月 30 日の午前 0 時を 0 とし、そこからの経過日数が整数で表されます。時間値は、小数部分の絶対値で表されます。ただし、浮動小数点数値ではすべての実数値を表すことができません。したがって、DT_DATE で表すことができる日付の範囲には制限があります。 一方、DT_DBTIMESTAMP は、年、月、日、時間、分、秒、およびミリ秒が個別のフィールドを持つ構造体で表されます。このデータ型で表すことができる日付の範囲に制限はありません。 |
DT_DBDATE |
年、月、および日で構成される日付の構造体です。 |
DT_DBTIME |
時間、分、および秒で構成される時間の構造体です。 |
DT_DBTIMESTAMP |
年、月、日、時間、分、秒、およびミリ秒で構成されるタイムスタンプの構造体です。 |
DT_DECIMAL |
有効桁数と小数点以下桁数が固定長の、正確な数値です。このデータ型は、12 バイトの符号なし整数で、区切り記号および 0 から 28 までの小数点以下桁数を持ち、最大有効桁数は 29 です。 |
DT_FILETIME |
1601 年 1 月 1 日以降を、100 ナノ秒間隔の数で表す 64 ビット値です。 |
DT_GUID |
グローバルな一意識別子 (GUID) を格納するデータ型です。 |
DT_I1 |
1 バイトの符号付き整数です。 |
DT_I2 |
2 バイトの符号付き整数です。 |
DT_I4 |
4 バイトの符号付き整数です。 |
DT_I8 |
8 バイトの符号付き整数です。 |
DT_NUMERIC |
有効桁数と小数点以下桁数が固定長の、正確な数値です。このデータ型は、16 バイトの符号なし整数で、区切り記号および 0 から 38 までの小数点以下桁数を持ち、最大有効桁数は 38 です。 |
DT_R4 |
単精度の浮動小数点値です。 |
DT_R8 |
倍精度の浮動小数点値です。 |
DT_STR |
NULL で終わる ANSI/MBCS 文字の文字列で、最大長は 8,000 文字です。列の値に追加の NULL ターミネータが含まれている場合、その文字列は最初に NULL が出現した箇所で切り捨てられます。 |
DT_UI1 |
1 バイトの符号なし整数です。 |
DT_UI2 |
2 バイトの符号なし整数です。 |
DT_UI4 |
4 バイトの符号なし整数です。 |
DT_UI8 |
8 バイトの符号なし整数です。 |
DT_WSTR |
NULL で終わる Unicode 文字の文字列で、最大長は 4,000 文字です。列の値に追加の NULL ターミネータが含まれている場合、その文字列は最初に NULL が出現した箇所で切り捨てられます。 |
DT_IMAGE |
最大サイズが 231-1 (2,147,483,647) バイトのバイナリ値です。. |
DT_NTEXT |
最大長が 230- 1 (1,073,741,823) 文字の、Unicode 文字の文字列です。 |
DT_TEXT |
最大長が 231-1 (2,147,483,647) 文字の、ANSI/MBCS 文字の文字列です。 |
列のデータ型の変更
列のデータが、変換元のデータ型で割り当てられている長さや桁数をいっぱいまで使用する必要がない場合は、その列のデータ型を変更できます。各データ行をできるだけ小さくすることにより、データ転送時のパフォーマンスを最適化できます。行が小さくなるほど、変換元から変換先へのデータ移動が高速になるためです。
Integration Services には、数値データ型のセットすべてが含まれているので、データのサイズに最も近いデータ型を選択できます。たとえば、DT_UI8 データ型の列の値が常に 0 から 3,000 までの整数の場合、このデータ型は DT_UI2 に変更できます。同様に、DT_CY データ型の列が、整数データ型を使用するパッケージのデータ要件を満たしている場合は、データ型を DT_I4 に変更できます。
また、日付または時間のデータを含む列のデータ型を変更し、データの一部である日または時間を抽出できます。たとえば、列のデータ型を DT_DBTIMESTAMP から DT_DBTIME に変更した場合、値の一部である時間、分、および秒のみが使用できるようになります。
列のデータ型は、次の方法で変更できます。
- 変換を使用して列の値を式の結果で置換するか、または、元の列とは異なるデータ型を持つ列のコピーを作成します。詳細については、「派生列変換」を参照してください。
- 変換を使用して、列のデータ型を別のデータ型にキャストします。詳細については、「データ変換の変換」を参照してください。
メモ : |
---|
ブール値は論理値であって、数値ではありません。ブール値は一部の環境で数値として表示される場合がありますが、数値として格納されることはありません。また、.NET Framework のメソッドと同様に、さまざまなプログラミング言語でブール値が個別の数値として表されます。 たとえば、Visual Basic で使用できる変換関数は True を -1 に変換しますが、.NET Framework の System.Convert.ToInt32 メソッドは True を +1 に変換します。Integration Services 式言語は True を -1 に変換します。 エラーや予期しない結果が発生しないようにするには、True と False を特定の数値で表現するコードを記述しないようにする必要があります。可能な限り、ブール型の変数には、仕様で定められている論理値以外の値を使用しないようにしてください。 |
Integration Services のデータ型とデータベースのデータ型とのマッピング
次の表に、特定のデータベースによって使用されるデータ型を Integration Services のデータ型にマッピングする際のガイダンスを示します。これらのマッピングは、SQL Server インポートおよびエクスポート ウィザードでソースからデータをインポートする際に使用されるマッピング ファイルから集約されます。これらのマッピング ファイルの詳細については、「SQL Server インポートおよびエクスポート ウィザードを使用してパッケージを作成する方法」を参照してください。
重要 : |
---|
これらのマッピングは厳密な対応関係を表しているわけではなく、ガイダンスの提供のみを目的としています。場合によっては、この表に示されているデータ型とは異なるデータ型を使用する必要があります。 |
データ型 | SQL Server (SQLOLEDB、SQLNCLI) | SQL Server (SqlClient) | Jet | Oracle (MSDAORA) | Oracle (OracleClient) | DB2 (DB2OLEDB) | DB2 (IBMDADB2) |
---|---|---|---|---|---|---|---|
DT_BOOL |
bit |
bit |
Bit |
||||
DT_BYTES |
binary、varbinary、timestamp |
binary、varbinary、timestamp |
BigBinary、VarBinary |
RAW |
RAW |
||
DT_CY |
smallmoney、money |
smallmoney、money |
Currency |
||||
DT_DATE |
|||||||
DT_DBDATE |
|||||||
DT_DBTIME |
|||||||
DT_DBTIMESTAMP |
datetime、smalldatetime |
datetime、smalldatetime |
DateTime |
TIMESTAMP、DATE、INTERVAL |
TIMESTAMP、DATE、INTERVAL |
TIME、TIMESTAMP、DATE |
TIME、TIMESTAMP、DATE |
DT_DECIMAL |
|||||||
DT_FILETIME |
|||||||
DT_GUID |
uniqueidentifier |
uniqueidentifier |
GUID |
||||
DT_I1 |
|||||||
DT_I2 |
smallint |
smallint |
Short |
SMALLINT |
SMALLINT |
||
DT_I4 |
int |
int |
Long |
INTEGER |
INTEGER |
||
DT_I8 |
bigint |
bigint |
BIGINT |
BIGINT |
|||
DT_NUMERIC |
decimal、numeric |
decimal、numeric |
Decimal |
NUMBER、INT |
NUMBER、INT |
DECIMAL、NUMERIC |
DECIMAL、NUMERIC |
DT_R4 |
real |
real |
Single |
REAL |
REAL |
||
DT_R8 |
float |
float |
Double |
FLOAT、REAL |
FLOAT、REAL |
FLOAT、DOUBLE |
FLOAT、DOUBLE |
DT_STR |
char、varchar |
VarChar |
CHAR、ROWID、VARCHAR2 |
CHAR、VARCHAR |
CHAR、VARCHAR |
||
DT_UI1 |
tinyint |
tinyint |
Byte |
||||
DT_UI2 |
|||||||
DT_UI4 |
|||||||
DT_UI8 |
|||||||
DT_WSTR |
nchar、nvarchar、sql_variant、xml |
char、varchar、nchar、nvarchar、sql_variant、xml |
LongText |
NVARCHAR2、NCHAR |
CHAR、ROWID、VARCHAR2、NVARCHAR2、NCHAR |
GRAPHIC、VARGRAPHIC |
GRAPHIC、VARGRAPHIC |
DT_IMAGE |
image |
image |
LongBinary |
LONG RAW、BLOB、LOBLOCATOR、BFILE、VARGRAPHIC、LONG VARGRAPHIC、ユーザー定義型 |
LONG RAW、BLOB、LOBLOCATOR、BFILE、VARGRAPHIC、LONG VARGRAPHIC、ユーザー定義型 |
CHAR () FOR BIT DATA、VARCHAR () FOR BIT DATA |
CHAR () FOR BIT DATA、VARCHAR () FOR BIT DATA、BLOB |
DT_NTEXT |
ntext |
text、ntext |
NCLOB、NVARCHAR、TEXT |
LONG、CLOB、NCLOB、NVARCHAR、TEXT |
LONG VARCHAR、NCHAR、NVARCHAR、TEXT |
LONG VARCHAR、DBCLOB、NCHAR、NVARCHAR、TEXT |
|
DT_TEXT |
text |
CLOB、LONG |
LONG VARCHAR FOR BIT DATA |
LONG VARCHAR FOR BIT DATA、CLOB |
データ フローでのデータ型のマッピングの詳細については、「データ フローでのデータ型のマッピング」を参照してください。
参照
概念
ヘルプおよび情報
変更履歴
リリース | 履歴 |
---|---|
2007 年 9 月 15 日 |
|
2006 年 7 月 17 日 |
|
2005 年 12 月 5 日 |
|