アプリケーション開発の手引き

SQL プロシージャーのサンプル


表 47. SQL プロシージャーのサンプル・プログラム
サンプル・プログラム名 プログラムの説明
basecase.db2 UPDATE_SALARY プロシージャーは、 "sample" データベースの "staff" 表内の "empno" の IN パラメーターによって識別される従業員の給料を上昇させます。このプロシージャーは、 "rating" の IN パラメーターを使用する CASE ステートメントによって上昇率を判別します。
basecase.sqc UPDATE_SALARY プロシージャーを呼び出します。
baseif.db2 UPDATE_SALARY_IF プロシージャーは、 "sample" データベースの "staff" 表内の "empno" の IN パラメーターによって識別される従業員の給料を上昇させます。このプロシージャーは、 "rating" の IN パラメーターを使用する IF ステートメントによって上昇率を判別します。
baseif.sqc UPDATE_SALARY_IF プロシージャーを呼び出します。
dynamic.db2 CREATE_DEPT_TABLE プロシージャーは、動的 DDL を使用して新しい表を作成します。表の名前は、このプロシージャーの IN パラメーターの値に基づいています。
dynamic.sqc CREATE_DEPT_TABLE プロシージャーを呼び出します。
iterate.db2 ITERATOR プロシージャーは、FETCH ループを使用して、 "department" 表からデータを検索します。 "deptno" 列の値が 'D11' でない場合、修正されたデータが "department" 表の中に挿入されます。 "deptno" 列が 'D11' である場合、 ITERATE ステートメントは、LOOP ステートメントの冒頭に制御の流れを渡します。
iterate.sqc ITERATOR プロシージャーを呼び出します。
leave.db2 LEAVE_LOOP プロシージャーは、 "not_found" 条件ハンドラーが LEAVE ステートメントを呼び出す前に LOOP ステートメント内で実行される FETCH 操作の数をカウントします。 LEAVE ステートメントは、制御の流れがループから出て、ストアード・プロシージャーを完了するようにします。
leave.sqc LEAVE_LOOP プロシージャーを呼び出します。
loop.db2 LOOP_UNTIL_SPACE プロシージャーは、カーソルが "midinit" 列のスペース (' ') 値を持つ行を検索するまで、 LOOP ステートメント内で実行される FETCH 操作の数をカウントします。 LOOP ステートメントは、制御の流れがループから出て、ストアード・プロシージャーを完了するようにします。
loop.sqc LOOP_UNTIL_SPACE プロシージャーを呼び出します。
nestcase.db2 BUMP_SALARY プロシージャーは、ネストされた CASE ステートメントを使用して、 "sample" データベースの "staff" 表から部署の IN パラメーターによって識別される部署内の従業員の給料を上昇させます。
nestcase.sqc BUMP_SALARY プロシージャーを呼び出します。
nestif.db2 BUMP_SALARY_IF プロシージャーは、ネストされた IF ステートメントを使用して、 "sample" データベースの "staff" 表から部署の IN パラメーターによって識別される部署内の従業員の給料を上昇させます。
nestif.sqc BUMP_SALARY_IF プロシージャーを呼び出します。
repeat.db2 REPEAT_STMT プロシージャーは、カーソルが行を検索できなくなるまで、繰り返しステートメント内で実行される FETCH 操作の数をカウントします。条件ハンドラーは、制御の流れが繰り返しループから出て、ストアード・プロシージャーを完了するようにします。
repeat.sqc REPEAT_STMT プロシージャーを呼び出します。
rsultset.c MEDIAN_RESULT_SET プロシージャーを呼び出し、給与の中央値を表示し、SQL プロシージャーによって生成された結果セットを表示します。このクライアントは、結果セットを扱える CLI API で書き出されます。
rsultset.db2 MEDIAN_RESULT_SET プロシージャーは、 "sample" データベースの "staff" 表から "dept" の IN パラメーターによって識別される部署内の従業員の給与の中央値を入手します。給与の中央値は、給料の OUT パラメーターに割り当てられ、 "rsultset" クライアントに戻されます。次に、このプロシージャーは、 WITH RETURN カーソルをオープンし、中央値よりも高い給料の従業員の結果セットを戻します。このプロシージャーは、クライアントに結果セットを戻します。
spserver.db2 この CLP スクリプト内の SQL プロシージャーは、基本的なエラー処理、ネストされたストアード・プロシージャーの呼び出し、クライアント・アプリケーションまたは呼び出し側アプリケーションに対して結果セットを戻すことについてのデモを示します。 CLI サンプル・ディレクトリーで、"spcall" アプリケーションを使用してプロシージャーを呼び出すことができます。 C および CPP サンプル・ディレクトリーで、 "spclient" アプリケーションを使用して、結果セットを戻さないプロシージャーを呼び出すこともできます。
whiles.db2 DEPT_MEDIAN プロシージャーは、 "sample" データベースの "staff" 表から "dept" の IN パラメーターによって識別される部署内の従業員の給与の中央値を入手します。給与の中央値は、給料の OUT パラメーターに割り当てられ、 "whiles" クライアントに戻されます。次に、whiles クライアントは、給与の中央値を印刷します。
whiles.sqc DEPT_MEDIAN プロシージャーを呼び出します。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]