ソース派生関数
ソース派生関数は、サーバーに既に存在する別の関数を呼び出す関数です。 この関数は、基礎となるソース関数の属性を継承します。 ソース関数は、組み込み、外部、SQL、またはソース派生の関数です。 ソース派生関数を使用して、組み込み集約関数およびスカラー関数を特殊タイプで使用できるように拡張することができます。
既存の組み込み関数、または他のユーザー定義関数を土台として利用するには、ソース派生関数を使用できます。 ソース派生関数は、組み込みの集約関数やスカラー関数を特殊タイプに使用するために拡張する場合に便利です。
ソース派生関数を実装するには、CREATE FUNCTION ステートメントを発行し、SOURCE 節でソース派生関数の基礎にする関数を特定します。
例:ソースのユーザー定義関数の定義
BOAT という特殊タイプを持つ、ある値の中にあるストリングを探索するユーザー定義関数が 必要であるとします。 BOAT は、BLOB データ・タイプに基づく特殊タイプです。 ユーザー定義関数 FINDSTRINGBLOB は、BLOB データ・タイプを入力として取り、必要な関数を実行するようにすでに定義されていますが、BOAT データ・タイプの値を使用して呼び出すことができません。 FINDSTRING の特定名は FINDSTRINGBLOB です。
FINDSTRING に基づいてソース・ユーザー定義関数を定義して、タイプ BOAT の値のストリング検索を行うことができます。 Db2 ソース関数であるFINDSTRINGが呼び出されると、BOAT引数は暗黙的にBLOBにキャストされます。 次の CREATE FUNCTION ステートメントは、 ソース・ユーザー定義関数を定義します。
CREATE FUNCTION FINDSTRING (BOAT, VARCHAR(200))
RETURNS INTEGER
SPECIFIC FINDSTRINGBOAT
SOURCE SPECIFIC FINDSTRINGBLOB;