変数の作成および使用

変数は、単一値を格納するオブジェクトです。この値には、文字列、数値または日付を使用できます。値は、Oracle Data Integratorに格納して、実行時に更新できます。

変数の値は、論理スキーマで実行される問合せの結果に基づいて更新できます。たとえば、値としてデータベースの現在の日時を取得できます。

変数は、グローバル変数として作成するか、またはプロジェクト内で作成することが可能です。グローバル変数はすべてのプロジェクトで使用できますが、プロジェクト変数はそれを定義したプロジェクト内でのみ使用できます。

変数の作成

変数を作成する手順:

  1. プロジェクトの「変数」ノードをクリックするか、「その他」ビューの「グローバル変数」ノードをクリックします。

  2. 右クリックし、「変数の挿入」を選択します。

  3. 「名前」「アクション」「データ型」および「デフォルト値」を指定します。詳細は、「変数」を参照してください。

  4. 変数の値を問合せで設定する場合は、次のようにします。

    1. 「リフレッシュ中」タブを選択します。

    2. コマンドを実行する論理スキーマを選択し、スキーマのテクノロジの言語でコマンド・テキストを編集します。をクリックすることで式エディタを使用できます。

    3. をクリックして式の構文をチェックします。

    4. 「リフレッシュ」ボタンをクリックすると、即座に問合せを実行して変数をテストできます。

  5. 「OK」をクリックします。

ツリー・ビューに変数が表示されます。

 

変数を削除する手順:

  1. 適切なツリー・ビューの変数をクリックします。

  2. 右クリックし、「削除」を選択します。

  3. 「OK」をクリックします。

変数の使用

パッケージで変数を使用する手順:

パッケージ内の変数は、次のように様々な方法で使用できます。

変数のスコープ

変数は、そのスコープを明示的に指定することで使用できます(この方法で使用する必要があります)。スコープを指定する構文は、#GLOBAL.<variable name>グローバル変数の場合)または#<project code>.<variable name>プロジェクト変数の場合)です。

変数の値の使用方法

変数は、次のようなOracle Data Integratorのすべての式で使用できます。

式のテキスト内で変数の値を置換するには、変数名の前に#文字を追加します。エージェントまたはグラフィカル・インタフェースにより、実行前にコマンドの変数の値が置換されます。

次に、YEARというグローバル変数の使用例を示します。

Update CLIENT set LASTDATE = sysdate where DATE_YEAR = '#GLOBAL.YEAR' /* DATE_YEAR is CHAR type */

Update CLIENT set LASTDATE = sysdate where DATE_YEAR = #GLOBAL.YEAR /* DATE_YEAR is NUMERIC type */

注意: SQL言語のバインド変数メカニズムも使用できますが、あまり効率的ではありません。リレーショナル・データベース・エンジンでは、問合せの実行計画の作成時に変数の値を確認できないためです。このメカニズムを使用するには、変数の前にコロン(:)を追加します。検索対象のデータ型が変数のデータ型と互換性があることを確認してください。
例: update CLIENT set LASTDATE = sysdate where DATE_YEAR =:GLOBAL.YEAR

注意: 式エディタでは、ほとんどの式に変数をドラッグ・アンド・ドロップできます。トポロジのリソース名やスキーマ名などのグラフィカル・モジュールのフィールドで、変数を置換変数として使用することも可能です。この場合、変数名(#GLOBAL.MYTABLENAMEなど)をOracle Data Integratorのグラフィカル・モジュールのフィールドで直接使用する必要があります。

この方法を使用すると、ファイルや表の物理名などの実行時要素(データストア「リソース」フィールド)またはそれらの場所(トポロジの「物理スキーマのスキーマ(データ)」)をパラメータ化できます。

シナリオへの変数の受渡し

動作をカスタマイズするためにシナリオに変数を渡すこともできます。これを行うには、シナリオを実行するOSコマンドラインで変数の名前とその値を渡します。詳細は、「OSコマンドからのシナリオの実行」を参照してください。