イメージ、オーディオ、およびビデオ・エクステンダー 管理およびプログラミングの手引き

UDF 名と UDT 名

DB2 関数の正式名は、スキーマ名.関数名 です。 ここで、スキーマ名 は SQL オブジェクトの論理的なグループを表す識別子です。

DB2 エクステンダー UDF のスキーマ名は MMDBSYS です。 MMDBSYS というスキーマ名は、DB2 エクステンダー UDT の修飾子でもあります。

UDF や UDT を参照する場合には、どこでも正式な名前が使用できます。 たとえば、MMDBSYS.CONTENT は、スキーマ名が MMDBSYS で、関数名が CONTENT の UDF を表します。 MMDBSYS.DB2IMAGE は、スキーマ名が MMDBSYS で、特殊タイプ名が DB2IMAGE の UDT を表します。 スキーマ名は、UDF や UDT を参照するとき省略することができます。 この場合、DB2 は関数パスを使って、必要な関数と特殊データ・タイプを判別します。

関数パス

関数パスとは、スキーマ名が順に並んだリストです。 DB2 は、リスト内のスキーマ名の順序を使って、関数や特殊データ・タイプへの参照を解決します。 関数パスの指定には、SQL ステートメント SET CURRENT FUNCTION PATH を使用します。

これを使用すると、関数パスが CURRENT FUNCTION PATH という特殊レジスターに設定されます。

DB2 エクステンダーでは、mmdbsys スキーマを関数パスに追加するのが適切です。 これにより、DB2 エクステンダー UDF および UDT を、名前の前に mmdbsys を付けなくても入力することができます。 以下の例は、mmdbsys スキーマを関数パスに追加する方法を示しています。

SET CURRENT FUNCTION PATH = mmdbsys, CURRENT FUNCTION PATH

mmdbsys としてログオンする場合、mmdbsys を関数パスの最初のスキーマとして追加しないでください。 mmdbsys ユーザー ID でログオンする場合、関数パスにおける最初のスキーマは mmdbsys に設定されます。 次に SET CURRENT FUNCTION PATH ステートメントで関数パスの最初のスキーマを mmdbsys に設定すると、その関数パスの始めの 2 つが mmdbsys スキーマとなり、エラー状態になります。

多義化された関数名

関数名を多義化することができます。 つまり、複数の UDF が、同じスキーマにおいてさえ同じ名前をもつことがあります。 しかし、2 つの関数が同じシグニチャーをもつことはできません。 シグニチャーとは、修飾された関数名と、すべての関数パラメーターの定義済みデータ・タイプとを連結したものです。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]