< 前へ | 次へ >

SQL ストアード・プロシージャーの作成

この課題では、ウィザードを使用して DB2 SQL ストアード・プロシージャーを作成します。 このシンプルなストアード・プロシージャーは、従業員の組織 ID とユーザーが入力した値が一致する場合に、EMP_EMPLOYEE_DIM 表からその従業員の情報を返します。

ウィザードで、ストアード・プロシージャーでコードのベースとして使用するテンプレートを選択します。 この演習では、ウィザードで選択するテンプレートを作成します。 この演習で作成するようなシンプルなストアード・プロシージャーでは、 基本的なテンプレートのいずれかを使用するのが普通です。 しかしこの演習では、テンプレート作成のプロセスに詳しくなるためにテンプレートを作成します。

ワークベンチの中でルーチンを作成する場合、プロジェクト・ワークスペースにソース・コードを保存します。

SQL ストアード・プロシージャーを作成するには、次のようにします。

  1. 既存のテンプレートからテンプレートを作成します。
    1. 「ウィンドウ (Window)」 > 「設定」をクリックします。 「設定」ウィンドウが開きます。
    2. 「データ管理 (Data Management)」 > 「SQL 開発 (SQL Development)」 > 「ルーチン」と展開し、「テンプレート」をクリックします。
    3. 「テンプレート」ページで、コンテキストが db2luw_sp_sql である最初のテンプレートが表示されるまでスクロールダウンします。 このテンプレートの名前は、「Custom: You supply the SQL, return a result set」です。
    4. テンプレートをクリックして、「編集」をクリックします。 「テンプレートの編集」ウィンドウが開きます。
    5. 既存のテンプレート名を、GSDB4tutorial: Basic employee SEARCH statement というテキストで置き換えます。
    6. 既存のテンプレート説明を、次のテキストで置き換えます。 Return ID, name, and organization of all employees in EMP_EMPLOYEE_DIM table.
    7. パターンで、番号記号が表示されている 2 つのコメント行 (-- #################) の間にあるコメント行をすべて削除します。
    8. [Your SQL to execute goes here] を、 次の SQL ステートメントで置き換えます。
      		SELECT EMPLOYEE_CODE, FIRST_NAME,
      		       LAST_NAME, ORGANIZATION_CODE
      		  FROM EMP_EMPLOYEE_DIM;
      ここまでの手順が完了したテンプレートには、 次のような情報が含まれています。
      完了したテンプレートの「テンプレートの編集」ウィンドウを示す画面キャプチャー
    9. テンプレートの編集」ウィンドウで「OK」をクリックします。 新しい名前の追加のテンプレートを作成するか、既存のテンプレートを名前変更するかを指定するように求めるメッセージ・ボックスが表示されます。
    10. はい (Yes)」をクリックして、新規テンプレートを作成します。 そのテンプレートが「テンプレート」ページのリストに追加されます。
    11. 設定」ウィンドウで「OK」をクリックします。
  2. 「データ・プロジェクト・エクスプローラー」ビューで、SPDevelopment プロジェクトを展開して「ストアード・プロシージャー」フォルダーを見つけます。
  3. ストアード・プロシージャー」フォルダーを右クリックし、「新規」 > 「ストアード・プロシージャー」を選択します。 「新規ストアード・プロシージャー」ウィザードが開きます。
  4. 「名前 (Name)」フィールドに SPEmployee と入力します。
  5. 「言語」フィールドで、「SQL」を選択します。
  6. GSDB4tutorial: Basic employee SEARCH statement テンプレートを選択して、 「完了」をクリックします。 ウィザードが終了し、ルーチン・エディターでそのストアード・プロシージャーが開くので、 ここでソース・コードを表示したり編集したりすることができます。

    この時点で、ストアード・プロシージャーを保存、デプロイ、および実行していた場合、結果の表にはすべての従業員が表示されます。 しかし、018 組織に属する従業員だけを結果に表示させたいとします。

  7. エディターで以下のアクションを実行します。
    1. プロシージャー宣言に org 入力パラメーターを追加して、 宣言が次のようになるようにします。
      CREATE PROCEDURE SPEmployee ( IN org CHAR(6) )
    2. EMP_EMPLOYEE_DIM の後ろのセミコロンを削除します。
    3. 以下の条件節を挿入します。
      WHERE ORGANIZATION_CODE = org;
    完了したストアード・プロシージャーには次のコードが含まれています。
    CREATE PROCEDURE SPEmployee ( IN org CHAR(6) )
    	DYNAMIC RESULT SETS 1
    P1: BEGIN
    	-- Declare cursor
    	DECLARE cursor1 CURSOR WITH RETURN for
    
    		SELECT EMPLOYEE_CODE, FIRST_NAME,
      		     LAST_NAME, ORGANIZATION_CODE
    		  FROM EMP_EMPLOYEE_DIM
    		    WHERE ORGANIZATION_CODE = org;
    
    	-- Cursor left open for client application
    	OPEN cursor1;
    END P1
  8. このストアード・プロシージャーを保存してから、ルーチン・エディターを閉じます。

ストアード・プロシージャー SPEmployee は、それを作成したプロジェクトの下の「ストアード・プロシージャー」フォルダー内の、「データ・プロジェクト・エクスプローラー」ビューにおいて表示されます。 これで、このストアード・プロシージャーをデプロイする準備ができました。

< 前へ | 次へ >

フィードバック