目次

Search

  1. はじめに
  2. トランスフォーメーションに関する作業
  3. アグリゲータトランスフォーメーション
  4. カスタムトランスフォーメーション
  5. カスタムトランスフォーメーション関数
  6. データマスキングトランスフォーメーション
  7. データマスキングの例
  8. 式トランスフォーメーション
  9. エクスターナルプロシージャトランスフォーメーション
  10. フィルタトランスフォーメーション
  11. HTTPトランスフォーメーション
  12. ID解決トランスフォーメーション
  13. Javaトランスフォーメーション
  14. JavaトランスフォーメーションAPIのリファレンス
  15. Java式
  16. Javaトランスフォーメーションの例
  17. ジョイナトランスフォーメーション
  18. ルックアップトランスフォーメーション
  19. ルックアップキャッシュ
  20. 動的ルックアップキャッシュ
  21. ノーマライザトランスフォーメーション
  22. ランクトランスフォーメーション
  23. ルータトランスフォーメーション
  24. シーケンスジェネレータトランスフォーメーション
  25. ソータトランスフォーメーション
  26. ソース修飾子トランスフォーメーション
  27. SQLトランスフォーメーション
  28. マッピングにおけるSQLトランスフォーメーションの使用
  29. ストアドプロシージャトランスフォーメーション
  30. トランザクション制御トランスフォーメーション
  31. 共有体トランスフォーメーション
  32. 構造化されていないデータのトランスフォーメーション
  33. アップデートストラテジトランスフォーメーション
  34. XMLトランスフォーメーション

トランスフォーメーションガイド

トランスフォーメーションガイド

セッション実行前または実行後のストアドプロシージャの呼び出し

セッション実行前または実行後のストアドプロシージャの呼び出し

ストアドプロシージャをセッションごとに1回だけ実行したい場合もあります。たとえばマッピングを実行する前にターゲットデータベースにテーブルが存在することを確認する必要がある場合は、ターゲットのロード前に実行されるストアドプロシージャを使用してテーブルをチェックし、その結果に基づいてワークフローの実行を続行するか中止するかを判断することができます。ストアドプロシージャは、ソース、ターゲット、またはその他の接続されているデータベースに対して実行することができます。
ロード前または後に実行されるストアドプロシージャを作成するには:
  1. マッピング内にストアードプロシージャトランスフォーメーションを作成します。
  2. ストアードプロシージャトランスフォーメーションをダブルクリックし、次に[プロパティ]タブを選択します。
  3. ストアドプロシージャの名前を入力します。
    ストアドプロシージャをインポートした場合、ストアドプロシージャ名はデフォルトで表示されます。ストアドプロシージャを手作業で設定した場合は、ストアドプロシージャの名前を入力します。
  4. [接続情報]で、ストアドプロシージャが格納されているデータベースを選択します。
  5. ストアドプロシージャの呼び出し文字列を入力します。
    呼び出しテキストでは、ストアドプロシージャの名前に続けてかっこ内に適切な入力パラメータを指定します。入力パラメータがない場合は中が空白の一対のかっこを記述します。そうでないとストアドプロシージャ呼び出しが失敗します。SQL文EXECを書く必要はなく、:SPキーワードを使用する必要もありません。たとえばcheck_disk_spaceというストアドプロシージャを呼び出すには、次のテキストを入力します。
    check_disk_space()
    文字列の入力パラメータを渡す場合はそれを引用符で囲まずに入力します。文字列の中に空白が含まれている場合は、パラメータを二重引用符で囲みます。たとえばストアドプロシージャcheck_disk_spaceが入力パラメータとしてマシン名を取る場合は、次のように入力します。
    check_disk_space(oracle_db)
    セッション実行前または実行後に起動されるストアドプロシージャを介して日時値を渡す場合、Informaticaデフォルト日付フォーマットに従い、二重引用符で囲んで、次のような値にする必要があります。
    SP(“12/31/2000 11:45:59”)
    PowerCenter
    パラメータおよび変数は、呼び出しテキストの中に使用できます。パラメータファイルで定義可能なパラメータまたは変数タイプを使用します。パラメータまたは変数は、呼び出しテキストの中に入力することも、あるいは呼び出しテキストとして使用することもできます。たとえば、セッションパラメータ$ParamMyCallTextを呼び出しテキストとして使用することも、あるいは$ParamMyCallTextをパラメータファイル内の呼び出しテキストに設定することもできます。
    セッション前およびセッション後のプロシージャの入力パラメータについては、プロシージャパラメータではなく値を入力する必要があります。
  6. ストアドプロシージャのタイプを選択します。
    ストアドプロシージャのタイプには以下のオプションがあります。
    • Source Pre Load。
      ストアドプロシージャは、セッションがソースからデータを取得する前に実行されます。このオプションは、テーブルの存在を検査したり、一時テーブル内でデータの結合を実行したりする場合に役立ちます。
    • Source Post Load。
      ストアドプロシージャは、セッションがソースからデータを取得したあとに実行されます。このオプションは、一時テーブルを削除するのに役立ちます。
    • Target Pre Load。
      ストアドプロシージャは、セッションがターゲットにデータを渡す前に実行されます。このオプションは、ターゲットテーブルやターゲットシステム上のディスク領域を検査するのに役立ちます。
    • Target Post Load。
      ストアドプロシージャは、セッションがターゲットにデータを渡したあとに実行されます。このオプションは、データベースのインデックスを再作成するのに便利です。
  7. [Execution Order]を選択し、必要であれば上向き矢印または下向き矢印をクリックして順序を変更します。
    セッションにおいて同時に実行される複数のストアドプロシージャ(例えば[ソースのロード後]で実行される2つのプロシージャ)を追加した場合、ストアドプロシージャ実行計画を設定して、Integration Serviceがそのストアドプロシージャを呼び出す順序を決定できます。変更したい各ストアドプロシージャに対してこの手順を繰り返す必要があります。
  8. [OK]をクリックします。
リポジトリがマッピングを検証して保存しても、Designerはストアドプロシージャの式がエラーなしで実行されることを保証しません。ストアドプロシージャの式の設定が正しくない場合、セッションは失敗します。ストアドプロシージャを使用するマッピングをテストする場合は、[Override Tracing]セッションオプションをVerboseモードに設定し、ストアドプロシージャが失敗した場合に実行を停止するように[On Stored Procedure]セッションオプションを設定します。これらのセッションオプションは、セッションプロパティの[設定オブジェクト]タブの[Error Handling]設定で設定します。
セッション実行前に起動されるストアドプロシージャおよびセッション実行後に起動されるストアドプロシージャの実行中に呼び出された出力パラメータまたは戻り値は、その値を取得することができないために失われてしまいます。そのような値を取得する必要がある場合は、ストアドプロシージャがデータベース内のテーブルに値を保存するように設定しなければなりません。