目次

Search

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

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

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

SETCOUNTVARIABLE

SETCOUNTVARIABLE

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

構文

SETCOUNTVARIABLE( $$
Variable
)
以下の表に、このコマンドの引数を示します。
引数
必須/
オプション
説明
$$
変数
必須
設定したいマッピング変数の名前。カウント集計型のマッピング変数を使用してください。

戻り値

変数のカレント値。

販売情報を含んだ、徐々に変化する次元テーブルを更新するマッピングがあるとします。下記の式では、マッピング変数$$CurrentDistributorsで現在の販売店数をカウントし、カレント値をCUR_DISTポートに返します。挿入したそれぞれの行につき、1つずつカウントを増やし、削除したそれぞれの行につき、1つずつカウントを減らして、更新または拒否された行についてはすべて同じカウントに保ちます。前回実行されたセッションからの$$CurrentDistributorsの初期値は、23です。
SETCOUNTVARIABLE ($$CurrentDistributors)
(row marked for...)
DIST_ID
DISTRIBUTOR
CUR_DIST
(update)
000015
MSD Inc.
23
(insert)
000024
Darkroom Co.
24
(insert)
000025
Howard's Supply
25
(update)
000003
JNR Ltd.
25
(delete)
000024
Darkroom Co.
24
(insert)
000026
Supply.com
25
セッション終了時に、
PowerCenter統合サービス
は$$CurrentDistributorsのカレント値として'25'をリポジトリに保存します。 次回のセッション実行時に、Integration Serviceは$$CurrentDistributorsに対する初期値を'25'にします。
PowerCenter統合サービス
は、1つのパーティションしか持たないセッションと同様に、複数のパーティションを持つセッションでも、$$CurrentDistributorsと同じ値をリポジトリに保存します。