ユーザーガイド > プロシージャ > 物理的なストアドプロシージャ > イントロスペクトされたデータソースのストアドプロシージャの編集
 
イントロスペクトされたデータソースのストアドプロシージャの編集
イントロスペクション中に、ストアドプロシージャのスカラーパラメーターとカーソルの方向が特定されていない場合があります。スカラーパラメーターまたはカーソルの方向が特定されていないストアドプロシージャをそのまま実行するとエラーが返されます。このような場合、パラメーターとカーソルの方向を手動で指定する必要があります。
このセクションでは、例を使用して、スカラーパラメーターまたはカーソルの方向を指定し、カーソル署名を定義する方法を示します。ここで説明するストアドプロシージャは、2つのスカラーパラメーター(1つの入力と1つの出力)を持ち、7つの列を持つ単一のカーソルを返します。
イントロスペクトされたデータソースのストアドプロシージャを編集するには、以下を参照してください。
スカラーパラメーターとカーソルの方向の指定
射影用のカーソルの定義
スカラーパラメーターとカーソルの方向の指定
イントロスペクションの結果に、方向が定義されていないスカラーパラメーターを持つパラメーター化されたクエリーが含まれている場合は、次の手順に従って、これらのスカラーパラメーターの方向を定義します。
スカラーパラメーターまたはカーソルの方向を指定するには
1.ストアドプロシージャをダブルクリックして開くか、右クリックして[Open(開く)]を選択します。
エディターが右側に開きます。
イントロスペクトされたパラメーターまたはカーソルの方向が不明な場合(IN、INOUT、OUTのいずれであるか)、壊れているように見えるアイコンがその横に表示されます。
Studioでストアドプロシージャのコピーを作成すると、Studioにより、プロシージャがイントロスペクト(つまり、そのメタデータが収集)され、方向が不明なパラメーターまたはカーソルにデフォルトのI/O方向のINが自動的に割り当てられます。
2.エディターのツールバーの[Design Mode(設計モード)]チェックボックスをオンにして、パラメーターの編集を開始できるようにします。
3.方向が不明なパラメーターを選択し、ツールバーの方向矢印ボタンを使用して方向を指定します。
4.ストアドプロシージャを保存します。
射影用のカーソルの定義
イントロスペクションの結果に、方向が定義されていない1つ以上のカーソルを持つパラメーター化されたクエリーが含まれる場合は、次の手順に従って(サンプルカーソルとそのパラメーターをガイドとして使用)、射影用のカーソルを手動で定義します。
射影用のカーソルを定義するには
1.ストアドプロシージャをダブルクリックして開くか、右クリックして[Open(開く)]を選択します。
エディターが右側に開きます。
2.エディターのツールバーの[Design Mode(設計モード)]チェックボックスをオンにして、パラメーターの編集を開始できるようにします。
3.[Add(追加)]ボタンをクリックして、[Complex(複合)] > [CURSOR]を選択します。
CURSOR型の新しいcursorParamが追加されます。
4.cursorParamを選択し、[Cycle I/O Direction(I/O方向の循環)]を1回以上クリックして、方向をOUTに変更します。
他の2つの有効な方向アイコンはINとINOUTです。
5.cursorParamを選択したまま、[Add(追加)]をクリックして、[Time(時間)] > [TIMESTAMP]を選択します。
timestampColumnという名前の新しいパラメーターがcursorParamの下に自動的に配置されます。
6.新しく追加されたパラメーターの日付の名前を変更し、<Enter>キーを押します。
7.子パラメーターの名前と型をcursorParamに次の順序で一度に1つずつ追加し、各パラメーターの型を次のように指定します。
ord_num (type NUMERIC)
qty (type SMALLINT)
title_id (type CHAR)
discount (type DOUBLE)
price (type DECIMAL)
total (type DOUBLE)
これで、カーソル列の選択が完了します。
カーソルに使用する列とデータ型がわからない場合は、Studioのサンプルによる設計ツールを使用してパラメーターを選択します。「サンプルによるカーソルの設計」を参照してください。サンプルによる設計を使用すると、カーソルに対して以前に定義されたすべてのパラメーターが上書きされます。
8.RETURN_VALUEという名前のパラメーターを選択して[Delete(削除)]ボタンをクリックするか、右クリックメニューから[Delete(削除)]を選択します。
9.ストアドプロシージャを保存します。
実行の詳細については、「ストアドプロシージャの実行」を参照してください。
サンプルによるカーソルの設計
カーソルにサンプルによる設計を使用すると、カーソルに対して以前に定義されたすべてのパラメーターが上書きされます。
サンプルによるカーソルを設計するには
1.射影用のカーソルを定義するには」に記載されている手順1から5に従います。
2.方向が不明なスカラーパラメーターの方向を指定した後、ストアドプロシージャを保存します。
3.プロシージャエディターのツールバーで[Design By Example(サンプルによる設計)]をクリックします。
[Input Values for <resource>(<リソース>の入力値)]ウィンドウが開きます。
4.スカラー入力パラメーターの値を指定して、[OK]をクリックします。
[Design By Example(サンプルによる設計)]ウィンドウが開き、resultという名前のカーソル内のすべての列が表示されます。
5.[OK]をクリックしてパラメーターを受け入れます。
すべてのカーソル列が、ストアドプロシージャに射影するために含まれます。
データ型が、基になる物理ストアドプロシージャのデータ型と互換性がある場合に限り、任意のパラメーターまたは列の名前を変更したり、データ型を変更したりできます。
6.ストアドプロシージャを保存します。
ストアドプロシージャの実行の詳細については、「ストアドプロシージャの実行」を参照してください。