構文 (SSIS)

適用対象:SQL Server Azure Data Factory の SSIS Integration Runtime

Integration Services 式の構文は、C 言語および C# 言語が使用する構文と同様です。 式には、識別子 (列および変数)、リテラル、演算子、関数などの要素が含まれます。 このトピックでは、式エバリュエーターの構文がさまざまな式要素を適用する際の、一意の必要条件の概要について説明します。

Note

前のリリースの Integration Servicesでは、式の評価結果の Integration Services データ型が DT_WSTR または DT_STR であるとき、結果の文字数が 4,000 文字に制限されていました。 この制限はなくなっています。

特定の演算子と関数を使用するサンプル式については、「演算子 (SSIS 式)」および「関数 (SSIS 式)」の各演算子と関数のトピックを参照してください。

複数の演算子と関数、および識別子とリテラルを使用するサンプル式については、「 Integration Services 式の詳細の例」を参照してください。

プロパティの式で使用するサンプル式については、「 パッケージでプロパティ式を使用する」を参照してください。

識別子

式には、列および変数の識別子を含めることができます。 列はデータ ソースで生成されるか、またはデータ フローの変換によって作成できます。 式では、系列 ID を使用して列を参照できます。 系列 ID は、パッケージの要素を一意に識別する数値です。 系列 ID を式の内部で参照する場合、系列 ID にポンド (#) プレフィックスを含める必要があります。 たとえば、系列 ID 138 を参照するには、#138 を使用します。

式には、 SSIS で用意されているシステム変数と、カスタム変数を含めることができます。 変数を式の内部で参照する場合、変数に @ プレフィックスを含める必要があります。 たとえば、 Counter 変数を参照する場合、@Counter を使用します。 @ 文字は変数名の一部ではなく、式エバリュエーターに対して識別子が変数であることを示すだけのものです。 詳細については、「識別子 (SSIS)」を参照してください。

リテラル

式には、数値、文字列、およびブール値のリテラルを含めることができます。 文字列リテラルを式で使用するには、引用符で囲む必要があります。 数値リテラルおよびブール値のリテラルには、引用符は付けません。 式言語には、通常エスケープされる文字のエスケープ シーケンスが含まれます。 詳細については、「リテラル (SSIS)」を参照してください。

演算子

式エバリュエーターで提供される演算子セットの機能は、Transact-SQL、C++、C# などの言語に含まれる、演算子セットの機能と同様です。 ただし、式言語には別の演算子が含まれており、周知の記号とは異なる記号が使用されます。 詳細については、「演算子 (SSIS)」を参照してください。

名前空間を解決する演算子

式では名前空間を解決する演算子 (::) が使用され、同じ名前を持つ複数の変数を明確に識別します。 名前空間を解決する演算子を使用すると、変数をその名前空間で修飾でき、これによって、同じ名前を持つ複数の変数をパッケージ内で使用できます。

キャスト演算子

キャスト演算子は、式の結果、列の値、変数の値、および定数を、あるデータ型から別のデータ型に変換します。 式言語が提供するキャスト演算子は、C および C# 言語が提供するものと同様です。 Transact-SQL では、CAST 関数と CONVERT 関数によってこの機能が提供されます。 キャスト演算子の構文は、CAST 関数や CONVERT 関数が使用する構文と、次の点が異なります。

  • 式を引数として使用できます。

  • 構文に CAST キーワードが含まれません。

  • 構文に AS キーワードが含まれません。

条件演算子

条件演算子は、ブール式の評価に基づいて 2 つの式のうちのいずれかの式を返します。 式言語が提供する条件演算子は、C および C# 言語が提供する条件演算子と同様です。 多次元式 (MDX) では、IIF 関数が同様の機能を提供します。

論理演算子

式言語では、論理 NOT 演算子の ! 文字がサポートされています。 Transact-SQL では、! 演算子は関係演算子のセットに組み込まれています。 たとえば、Transact-SQL には、> 演算子および !> 演算子が用意されています。 SSIS 式言語では、! 演算子とその他の演算子の組み合わせはサポートされません。 たとえば、! と > を結合して !> にすることはできません。 ただし、この式言語では、等しくない比較を表すために、!= の文字の組み合わせがあらかじめサポートされています。

等値演算子

式エバリュエーターの文法では、== 等価演算子が用意されています。 この演算子は、Transact-SQL での = 演算子、および C# での == 演算子と同等です。

関数

式言語には、日付と時刻の関数、数学関数、および文字列関数が提供されています。これらの関数は、Transact-SQL 関数や C# のメソッドと同様です。

いくつかの関数は、Transact-SQL 関数と同じ名前を持っていますが、式エバリュエーターの関数の機能は微妙に異なります。

  • Transact-SQL の ISNULL 関数は指定した値に NULL 値を置き換えますが、式エバリュエーターの ISNULL 関数は、式が NULL であるかどうかに基づくブール値を返します。

  • Transact-SQL の ROUND 関数には、結果セットを切り捨てるオプションが含まれますが、式エバリュエーターの ROUND 関数には含まれません。

詳細については、「関数 (SSIS 式)」を参照してください。

データ フロー コンポーネントで式を使用する