データソースとしてのストアドプロシージャ

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  データソースとターゲット > MapForce とデータベース > ストアドプロシージャ
 >

データソースとしてのストアドプロシージャ

このサンプルは入力パラメーターを取らない、データベースからデータを抽出するだけのプロシージャを呼び出す方法を示しています。 このシナリオでは、ストアドプロシージャはマッピングへのソースコンポーネントとしての役割を果たし、 MapForce によりサポートされる他のターゲットコンポーネントにより抽出されるデータをマップすることができます。入力パラメーターを持つストアドプロシージャを呼び出す必要がある場合、 入力と出力を持つストアドプロシージャを参照してください。

 

「AdventureWorks」 データベース内にデモのストアドプロシージャを最初に作成しましょう。これを行うには、下のスクリプトをデータベースに対して実行します。Microsoft SQL Server Management Studio のクエリウィンドウ、または、 DatabaseSpy (https://www.altova.com/ja/databasespy) などのツールからこれを行うことができます。どちらの場合でも、データベースユーザーアカウントがストアドプロシージャを作成するパーミッションを有していることを確認してください。

 

CREATE PROCEDURE HumanResources.uspGetAllEmployees
AS
  SELECT LastName, FirstName, JobTitle, Department
  FROM HumanResources.vEmployeeDepartment

 

上のストアドプロシージャは vEmployeeDepartment ビューから従業員の情報を返します。次のステップはこのプロシージャから返されたデータを消費するマッピングを作成する方法を表示しています。

 

1.MapForce から「AdventureWorks」データベースに接続し、マッピングにストアドプロシージャを追加する方法で説明されているとおり、ストアドプロシージャをマッピングに追加します。 データベースユーザーアカウントにストアドプロシージャをビューし実行するパーミッションが存在することを確認してください。
2.ストアドプロシージャの横の 「コンテキストメニューの表示」 mf_ic_storedproc_menu ボタンをクリックし、「ソースとしてノードを表示」を選択します。

mf_sp_04

3.「コンテキストメニューの表示」 mf_ic_storedproc_menu  ボタンをもう一度クリックし、「レコードセット構造の編集」を選択します。「レコードセットの構造」 ダイアログボックスが表示されます。

mf_sp_05

デザイン時にストアドプロシージャを呼び出すと(プロシージャの実装により)副作用が発生する可能性があります。デザイン時にストアドプロシージャを実行する場合、下記で説明されているとおり、「実行」をクリックしないでください。代わりに、レコードセットを手動で関連する列に追加し、「レコードセット構造」 ダイアログボックス内で期待されるレコードセットを定義します。「レコードセット構造」 ダイアログボックス内の「レコードセットの追加」 または 「列の追加」 ボタンを使用します。

 

4.「入力パラメータと呼び出しプロシージャの定義」をクリックし、「OK」 をクリックします。「ストアドプロシージャの評価」 ダイアログボックスが表示されます。

mf_sp_06

5.「実行」をクリックし、「OK」 をクリックします。レコードセット構造 ("RS1") が 「レコードセットの構造」 ダイアログボックスとマッピング上に表示されます。

mf_sp_07

6.この時点では、抽出されたデータが書き込まれるターゲットコンポーネントを追加することができます。 このサンプルでは、 データは CSV ファイルに書き込まれます。 「挿入」 メニューから「テキストファイル」をクリックし、 データは CSV コンポーネントをマッピングに追加します。 詳細に関しては、 CSV とテキストファイルを参照してください。

mf_sp_08

マッピングをプレビューすることができます。 「出力」 ボタンをクリックして、「出力」 ペイン内でマッピングの結果を確認します。例:

mf_sp_09


(C) 2019 Altova GmbH