目次

Search

  1. はじめに
  2. トランスフォーメーション言語
  3. 定数
  4. 演算子
  5. 変数
  6. 日付
  7. 関数
  8. カスタム関数の作成
  9. カスタム関数APIリファレンス

トランスフォーメーション言語リファレンス

トランスフォーメーション言語リファレンス

SETVARIABLE

SETVARIABLE

マッピング変数のカレント値を指定した値に設定します。指定した値を返します。SETVARIABLE関数は、行が挿入または更新をマーク付けされた場合にだけ実行されます。SETVARIABLEは他のすべての行タイプを無視し、カレント値は変更されません。
セッションが成功した場合、
PowerCenter統合サービス
はセッション終了時に変数の最終カレント値と変数の開始値を比較します。 変数の集計タイプに基づいて、PowerCenter Serverは最終カレント値をリポジトリに保存します。オーバーライドしなければ、次に実行するセッションの変数の初期値として、保存した値を使用します。
SETVARIABLE関数は、パイプラインの各マッピング変数に対して一度しか使用できません。
PowerCenter統合サービス
により、マッピングで変数関数が検出された場合、その変数関数が処理されます。
PowerCenter統合サービス
によってマッピングで変数関数が検出される順序は、セッションを実行するたびに異なります。このため、マッピングで同じ変数関数を複数回使用すると、結果が一貫しないことがあります。
下記のトランスフォーメーションでSETVARIABLEを使用してください。
  • Expression
  • Filter
  • Router
  • Update Strategy
以下のいずれかの条件に該当する場合、
PowerCenter統合サービス
はマッピング変数の最終値をリポジトリに保存しません。
  • セッションの完了に失敗した。
  • セッションがテストロードに設定されている。
  • セッションがデバッグセッションである。
  • セッションがデバッグモードで実行され、セッション出力を無視するように設定されている。

構文

SETVARIABLE( $$
Variable
,
value
)
以下の表に、このコマンドの引数を示します。
引数
必須/
オプション
説明
$$
変数
必須
設定したいマッピング変数の名前。Max/Min集計型のマッピング変数を使用してください。
value
必須
変数のカレント値を設定したい値。変数のデータ型と互換性のあるデータ型の値を求める有効なトランスフォーメーション式を入力できます。

戻り値

変数のカレント値。
value
がNULLの場合、
PowerCenter統合サービス
$$Variable
のカレント値を返します。

次の式では、
PowerCenter統合サービス
は行を評価したシステム日付をマッピング変数$$Timeに設定し、そのシステム日付をSET_$$TIMEポートに返します。
SETVARIABLE ($$Time, SYSDATE)
TRANSACTION
TOTAL
SET_$$TIME
0100002
534.23
10/10/2000 01:34:33
0100003
699.01
10/10/2000 01:34:34
0100004
97.50
10/10/2000 01:34:35
0100005
116.43
10/10/2000 01:34:36
0100006
323.95
10/10/2000 01:34:37
セッション終了時に、
PowerCenter統合サービス
は$$Timeの最後に求められたカレント値として10/10/2000 01:34:37をリポジトリに保存します。 次回のセッション実行時に、
PowerCenter統合サービス
は$$Timeに対するすべてのリファレンスを10/10/2000 01:34:37にします。
次の式は、マッピング変数$$Timestampに行に対応するタイムスタンプを設定し、そのタイムスタンプをSET_$$TIMESTAMPポートに返します。
SETVARIABLE ($$Time, TIMESTAMP)
TRANSACTION
TIMESTAMP
TOTAL
SET_$$TIMESTAMP
0100002
10/01/2000 12:01:01
534.23
10/01/2000 12:01:01
0100003
10/01/2000 12:10:22
699.01
10/01/2000 12:10:22
0100004
10/01/2000 12:16:45
97.50
10/01/2000 12:16:45
0100005
10/01/2000 12:23:10
116.43
10/01/2000 12:23:10
0100006
10/01/2000 12:40:31
323.95
10/01/2000 12:40:31
セッション終了時に、
PowerCenter統合サービス
は$$Timestampの最後に求められたカレント値として10/01/2000 12:40:31をリポジトリに保存します。
次回のセッション実行時に、
PowerCenter統合サービス
は$$Timestampの初期値を10/01/2000 12:40:31にします。