Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL リファレンス » SQL の使用 » SQL 関数 » 関数のタイプ

 

ユーザ定義関数

ユーザ定義関数 (UDF) は、プログラムまたは環境のユーザによって作成される関数です。ユーザ定義関数には、プログラムまたは環境に組み込まれている関数との相違点があります。

SQL Anywhere には、ユーザ定義関数を作成する 2 つのメカニズムがあります。SQL 言語を使用して関数を記述するか、Java を使用できます。

SQL のユーザ定義関数

CREATE FUNCTION 文 [Web サービス]を使用して、独自の SQL 関数を実装できます。CREATE FUNCTION 文中の RETURN 文によって、関数のデータ型が決まります。

一度 SQL ユーザ定義関数を作成すると、同じデータ型の組み込み関数が使用される任意の場所でその関数を使用できます。

SQL 関数の作成の詳細については、プロシージャ、トリガ、バッチの使用を参照してください。

Java のユーザ定義関数

Java クラスを使用すると、必要に応じて関数をデータベース・サーバからクライアント・アプリケーションに移動できるという追加の利点があるため、より強力で柔軟性に富んだユーザ定義関数を実装できます。

インストールされた Java クラスの「クラス・メソッド」は、同じデータ型の組み込み関数が使用されるところでは必ずユーザ定義関数として使用できます。

インスタンス・メソッドは、クラスの特定のインスタンスと関連しているため、標準のユーザ定義関数とは動作が異なります。

Java クラスの作成とクラス・メソッドの詳細については、クラスの作成を参照してください。

ユーザ定義関数とユーザ定義プロシージャのどちらを作成するかの判断

関数はプロシージャと似ています。関数とプロシージャのどちらを作成するかは、必要な戻り値と呼び出すオブジェクトに基づいて判断します。判断する際には、以下に示すユニークな特性について検討します。

関数:

  • 任意の型の単一値を返すことができ、RETURNS 句を使用して戻り値の型を宣言できる

  • 式の使用が可能なほとんどの場所で使用できる

  • 定義できるのは IN パラメータのみ

プロシージャ:

  • INOUT または OUT パラメータを使用して複数の値を返すことができる

  • 結果セットを返すことができる

  • クエリの FROM 句で参照したり、CALL 文や Transact-SQL の EXECUTE 文を使用して参照できる

  • 名前付きパラメータを使用して呼び出すことができる