ユーザー定義関数 は、 SQL にユーザー独自の拡張を定義できる機構です。 DB2 が提供する組み込み関数は便利な関数の集合ですが、これらはユーザーの要求のすべてを満たすわけではありません。 DB2 が提供する全関数のリストについては、 SQL 解説書 の『サポートされている関数』を参照してください。
メソッド を使用すれば SQL オブジェクトの振る舞いを定義できるため、 UDF と同じように SQL に独自の拡張を書き込むことができます。 UDF と異なる点は、メソッドは表内で列として保管されている構造型にしか関連付けることができないという点です。
以下のことが必要な場合に SQL を拡張しなければなりません。
DB2 にはユーザーのアプリケーションに固有の関数はありません。関数が、単純な変換、通常の計算または複雑な多変量分析のいずれであっても、おそらく UDF を使用してジョブを実行できます。
DB2 の組み込み関数は、ユーザーのアプリケーションに含めたい変化をすべて許可するわけではありません。
ユーザー・サイトのプログラムの多くは、同じ関数の基本集合をインプリメントしますが、そのすべてのインプリメンテーションにはわずかな違いがあります。このため、確実に一貫した結果を受け取るとは限りません。このような関数を UDF の形式で一度正しく使用すると、これらのプログラムはすべて、直接 SQL で同じインプリメンテーションを使用して一貫した結果を提供できます。
ユーザー定義特殊タイプと 複合オブジェクトの処理: ユーザー定義の構造型で説明するように、特殊タイプと構造型は機能を拡張し、DB2 の安全性を高めるのに非常に役立ちます。列内に保管されている構造型の振る舞いは、メソッドを作成することによって定義できます。同様に、特殊タイプに対する処理は、関数を作成することによって行えます。