この節では、UDF とメソッドの作成方法について説明します。 UDF のコーディング規則とメソッドのコーディング規則はほとんど同じですが、次の点が異なります。
UDF を作成する際の指針とメソッドを作成する際の指針は、前述の点を除いては同じであるため、 UDF とメソッドの作成に関するこの章のその他の説明は、 UDF についてのみ述べられている場合でも、 UDF とメソッドの両方にあてはまります。
1 つの単純式だけを含んでいるというような小さな UDF の場合は、 SQL 形式の UDF の使用を考慮してください。 SQL 形式の UDF を作成するには、 SQL を使用して作成されたメソッド本体を組み込む CREATE FUNCTION ステートメントまたは CREATE METHOD ステートメントを発行してください。外部 UDF を指すことはしないでください。 SQL 形式の UDF を使用すれば、外部言語や外部コンパイラーを使用しなくても、単一のステップだけで UDF を宣言および定義できます。 SQL 形式の UDF を使用すれば、パフォーマンスを向上できる可能性もあります。 DB2 最適化プログラムにアクセス可能な SQL を使用して、メソッド本体が作成されているからです。
次の例は、 SQL 形式の UDF を作成するシンプルな CREATE FUNCTION ステートメントを示したものです。
CREATE FUNCTION tan(double x) RETURNS double NO EXTERNAL ACTION DETERMINISTIC LANGUAGE SQL CONTAINS SQL RETURN sin(x) / cos(x);
SQL 形式の関数に関する詳細については、 SQL 解説書 を参照してください。
まず、DB2 と UDF 間のインターフェースに関する予備知識を説明し、続いて UDF をインプリメントする方法について説明します。 UDF の定義に関する主な考慮事項の 1 つとしてスクラッチパッドの有無が重要視されます。
以下に、この項で使用する一般的な考慮事項を示します。
UDF のコンパイルとリンクに関する情報は、アプリケーション構築の手引き にあります。
ソース派生 UDF (外部 UDF とは異なる) は、別々のコード形式でインプリメントする必要はありません。このような UDF は、他の属性と一緒に、そのソース関数と同じようにインプリメントされます。