データベース千夜一夜第28回

ストアドプロシージャ(2)~引数を伴う処理と値を返す処理 長谷川裕行
有限会社 手國堂

ストアドプロシージャは単に一定のSQL文を実行するだけではなく、引数を与えたり処理結果を戻り値として返したりできます。

これによって複雑で柔軟な処理をサーバー側で実行できるようになり、アプリケーションの負担が軽減できます。

ストアドプロシージャで引数を受け取る方法と値を返す方法、ストアドプロシージャ内での変数の扱い方などを紹介しましょう。


サンプル・データベースとサンプル・アプリケーションの扱いについて
第9回以降、新しいサンプル・データベースを使っているのでご注意ください。新しいサンプル・データベースの登録方法については、第9回の記事から「新しいサンプルデータベースの準備」の項をお読みください。

なお、今回はテーブルの内容を書き換えるSQLを実行するため、テーブル「累積売上_fx」と同じ内容を持つ「累積売上_dmy」を使用します。現在のサンプルデータベースにこのテーブルが存在しない場合は、クエリマネージャで今回のサンプルに含まれているクエリファイル「累積売上_dmy新規作成.sql」を実行して作成してください。

既に「累積売上_dmy」が存在するものの、その内容が書き換えられていて「累積売上_fx」と同じでない場合は、同じく今回のサンプルに含まれているクエリファイル「累積売上_dmy削除・作成.sql」を実行してください。



- 目次 -
テーブルの転記と削除
年次処理をストアドプロシージャに
2段階の処理
ストアドプロシージャの追加
ストアドプロシージャの実行
処理結果の確認
引数を伴うストアドプロシージャ
引数の宣言
引数をWHERE句の条件に充てる
ストアドプロシージャの実行
値を返すストアドプロシージャ
2通りの返し型
戻り値用の変数を用いる方法~書式
戻り値用の変数を用いる方法~商品名を返す処理
戻り値用の変数を用いる方法~クエリアナライザで戻り値を受け取る
Return命令を使う方法~商品IDを返す処理
Return命令を使う方法~ストアドプロシージャの実行
Return命令を使う方法~SELECT文をまとめる
Return命令を使う方法~複数レコードに注意
あとがき
長谷川 裕行 (はせがわ ひろゆき)
有限会社 手國堂 代表取締役  http://www.hirop.com/

大阪芸術大学 写真学科講師。フリーライター。日経ソフトウェアなどに連載。
『ソフトウェアの20世紀』、『独習SQL』など著書多数。

Copyright © MESCIUS inc. All rights reserved.