A stored procedure and user-defined function (UDF) is set of SQL and procedural statements (declarations, assignments, loops, flow-of-control etc) that stored on database server and can be invoke using SQL interface.All rights reserved.
例:
PostgreSQLでは、ストアドプロシージャもユーザ定義関数もCREATE FUNCTION文を使って作成されます。 データベースシステムにおけるストアドプロシージャと関数の概念には違いがあります。
ストアドプロシージャ | 関数 | |
式中での使用 | ||
値を返す | ||
OUTとして値を返す パラメータ | ||
一つの結果セットを返す | (として)。 テーブル関数) | |
複数の結果セットを返す |
だからほとんどの場合、そのようなことはない。 ストアドプロシージャの目的は、以下の通りです。
-
結果を返さないアクションの実行(INSERT、UPDATE操作など)。
-
OUT パラメータとして 1 つまたは複数のスカラー値を返す
-
1 つまたは複数の結果セットを返す
通常、ユーザー定義関数の目的は、入力パラメータを処理して新しい値を返します。
レポート ツール
多くのレポート ツール (Crystal Reports、Reporting Services、BI ツールなど) では、レポート用のデータセットを定義するために、結果セットを返すクエリー (SQL SELECT 文) またはストアド プロシージャを指定することが可能です。
ストアド プロシージャは、レポート用のデータが利用可能になる前に複雑な計算を実行する必要がある場合に非常に便利です。