SETVARIABLE
入力パラメータの現在の値を指定した値に設定します。指定した値を返します。
タスクの実行時、データ統合は、入出力パラメータの最終的な現在の値と開始値を比較します。入出力パラメータの集計タイプに基づいて、ジョブの詳細に最終的な現在の値が保存されます。この値がオーバーライドされない限り、次回タスクを実行するときは、保存された値が入出力パラメータの初期値として使用されます。
パイプラインの各入出力パラメータで、SETVARIABLE関数を使用するのは、1回のみです。データ統合は、変数関数をマッピングで検出したときにそれらの関数を処理します。データ統合がマッピングで変数関数を検出する順序は、タスクセッションごとに異なります。このため、マッピングで同じ変数関数を複数回使用すると、結果が矛盾する場合があります。
SETVARIABLEは、式トランスフォーメーションで使用できます。
構文
SETVARIABLE( $$Variable, value )
引数 | 必須/ オプション | 説明 |
---|
$$Variable | 必須 | 設定する入出力パラメータの名前。Max集計型またはMin集計型で設定された入出力パラメータとともに使用します。 |
value | 必須 | 入出力パラメータのカレント値として設定する値。パラメータのデータ型と互換性のあるデータ型に評価する有効な式を使用します。 |
戻り値
入出力パラメータのカレント値。
valueがNULLの場合、データ統合は現在の値である$$Variableを返します。
例
次の式は、データ統合が行を評価したときに入出力パラメータ$$Timeをシステム日付に設定し、このシステム日付をSET_$$TIMEポートに返します。
SETVARIABLE ($$Time, SYSDATE)
TRANSACTION | TOTAL | SET_$$TIME |
---|
0100002 | 534.23 | 10/10/2016 01:34:33 |
0100003 | 699.01 | 10/10/2016 01:34:34 |
0100004 | 97.50 | 10/10/2016 01:34:35 |
0100005 | 116.43 | 10/10/2016 01:34:36 |
0100006 | 323.95 | 10/10/2016 01:34:37 |
セッションの終了時、データ統合は、最後に評価された$$Timeの現在の値として10/10/2016 01:34:37をジョブの詳細に保存します。次回のタスク実行後、データ統合は、$$Timeに対するすべての参照を10/10/2016 01:34:37と評価します。
次の式は、行に関連付けられているタイムスタンプに入出力パラメータの$$Timestampを設定し、タイムスタンプをSET_$$TIMESTAMPポートに返します。
SETVARIABLE ($$Time, TIMESTAMP)
TRANSACTION | TIMESTAMP | TOTAL | SET_$$TIME |
---|
0100002 | 10/01/2016 12:01:01 | 534.23 | 10/01/2016 12:01:01 |
0100003 | 10/01/2016 12:10:22 | 699.01 | 10/01/2016 12:10:22 |
0100004 | 10/01/2016 12:16:45 | 97.50 | 10/01/2016 12:16:45 |
0100005 | 10/01/2016 12:23:10 | 116.43 | 10/01/2016 12:23:10 |
0100006 | 10/01/2016 12:40:31 | 323.95 | 10/01/2016 12:40:31 |
セッションの終了時、データ統合は、最後に評価された$$Timestampの現在の値として、10/01/2016 12:40:31をジョブの詳細に保存します。
次回のセッション実行時、データ統合は、$$Timestampの初期値を10/01/2016 12:40:31に設定します。