変数は、単一値を格納するオブジェクトです。この値には、文字列、数値または日付を使用できます。値は、Oracle Data Integratorに格納して、実行時に更新できます。
変数の値は、論理スキーマで実行される問合せの結果に基づいて更新できます。たとえば、値としてデータベースの現在の日時を取得できます。
変数は、グローバル変数として作成するか、またはプロジェクト内で作成することが可能です。グローバル変数はすべてのプロジェクトで使用できますが、プロジェクト変数はそれを定義したプロジェクト内でのみ使用できます。
変数を作成する手順:
プロジェクトの「変数」ノードをクリックするか、「その他」ビューの「グローバル変数」ノードをクリックします。
右クリックし、「変数の挿入」を選択します。
「名前」、「アクション」、「データ型」および「デフォルト値」を指定します。詳細は、「変数」を参照してください。
変数の値を問合せで設定する場合は、次のようにします。
「リフレッシュ中」タブを選択します。
コマンドを実行する論理スキーマを選択し、スキーマのテクノロジの言語でコマンド・テキストを編集します。をクリックすることで式エディタを使用できます。
をクリックして式の構文をチェックします。
「リフレッシュ」ボタンをクリックすると、即座に問合せを実行して変数をテストできます。
「OK」をクリックします。
ツリー・ビューに変数が表示されます。
変数を削除する手順:
適切なツリー・ビューの変数をクリックします。
右クリックし、「削除」を選択します。
「OK」をクリックします。
パッケージで変数を使用する手順:
パッケージ内の変数は、次のように様々な方法で使用できます。
宣言: 変数をパッケージで(またはパッケージ内で使用されるトポロジの特定の要素で)使用する場合、パッケージに変数の宣言ステップを挿入することを強くお薦めします。このステップで、パッケージの変数を明示的に宣言します。
リフレッシュ: 変数のリフレッシュ・ステップでは、変数の値を計算するコマンドまたは問合せを再実行できます。
割当て: 割当てタイプの変数の設定ステップでは、変数の現在の値を設定します。
増分: 増分タイプの変数の設定ステップでは、一定の分量ごとに数値を増減します。
条件評価: 変数の評価ステップでは、比較の結果に基づいて変数およびブランチの現在の値をテストします。
変数は、インタフェース、プロシージャ、OSコマンドなどのステップの式でも使用できます。
変数は、そのスコープを明示的に指定することで使用できます(この方法で使用する必要があります)。スコープを指定する構文は、#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コマンドからのシナリオの実行」を参照してください。