ユーザ定義関数 (UDF) は、プログラムまたは環境のユーザによって作成される関数です。ユーザ定義関数には、プログラムまたは環境に組み込まれている関数との相違点があります。
SQL Anywhere には、ユーザ定義関数を作成する 2 つのメカニズムがあります。SQL 言語を使用して関数を記述するか、Java を使用できます。
CREATE FUNCTION 文 [Web サービス]を使用して、独自の SQL 関数を実装できます。CREATE FUNCTION 文中の RETURN 文によって、関数のデータ型が決まります。
一度 SQL ユーザ定義関数を作成すると、同じデータ型の組み込み関数が使用される任意の場所でその関数を使用できます。
SQL 関数の作成の詳細については、プロシージャ、トリガ、バッチの使用を参照してください。
Java クラスを使用すると、必要に応じて関数をデータベース・サーバからクライアント・アプリケーションに移動できるという追加の利点があるため、より強力で柔軟性に富んだユーザ定義関数を実装できます。
インストールされた Java クラスの「クラス・メソッド」は、同じデータ型の組み込み関数が使用されるところでは必ずユーザ定義関数として使用できます。
インスタンス・メソッドは、クラスの特定のインスタンスと関連しているため、標準のユーザ定義関数とは動作が異なります。
Java クラスの作成とクラス・メソッドの詳細については、クラスの作成を参照してください。
関数はプロシージャと似ています。関数とプロシージャのどちらを作成するかは、必要な戻り値と呼び出すオブジェクトに基づいて判断します。判断する際には、以下に示すユニークな特性について検討します。
関数:
任意の型の単一値を返すことができ、RETURNS 句を使用して戻り値の型を宣言できる
式の使用が可能なほとんどの場所で使用できる
定義できるのは IN パラメータのみ
プロシージャ:
INOUT または OUT パラメータを使用して複数の値を返すことができる
結果セットを返すことができる
クエリの FROM 句で参照したり、CALL 文や Transact-SQL の EXECUTE 文を使用して参照できる
名前付きパラメータを使用して呼び出すことができる
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |