他のバージョンの文書 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

37.4. ユーザ定義プロシージャ

プロシージャは関数と似たデータベースオブジェクトです。 違いはプロシージャは値を返さず、そのため戻り型の宣言が無いことです。 関数が問い合わせやDMLコマンドの一部として呼び出されるのに対して、プロシージャは明示的にCALLコマンドを使って呼び出されます。 CALLコマンドが明示的なトランザクション内で無い場合、多くのサーバサイド言語のプロシージャはコミット、ロールバック、および新しいトランザクションの開始が実行出来ますが、関数には出来ません。

本章で後述するどのようにユーザ定義関数を定義するかの説明は、CREATE PROCEDUREコマンドを代わりに使う、戻り値が無い、変動性区分などいくつかの他の仕様が該当しないという点を除き、プロシージャにも同様にあてはまります。

関数とプロシージャは、ひとまとめにルーチンとも言われます。 関数とプロシージャを区別することなしに操作できるALTER ROUTINEDROP ROUTINEなどのコマンドがあります。 しかしながら、CREATE ROUTINEコマンドは無いことに注意してください。