SQL 解説書

ユーザー定義関数

>>-function-name--(----+--------------------+--)---------------><
                       |  .-,------------.  |
                       |  V              |  |
                       '----expression---+--'
 

ユーザー定義関数は、SQL 言語の既存の組み込み関数に対する拡張または追加です。 ユーザー定義関数は、呼び出されるたびに単一値を戻すスカラー関数、 類似の値の集合を渡され、その集合の単一値を戻す列関数、1 行を戻す行関数、 または表を戻す表関数のいずれでかです。 UDF が既存の列関数をソースとして派生される場合にのみ、 UDF は列関数になる点に注意してください。

データベースに登録されたユーザー定義のスカラー関数または列関数は、 組み込み関数を使用できるのと同じ文脈で参照することができます。

データベースに登録されたユーザー定義の表関数は、 FROM 文節で説明されているように、 SELECT の FROM 文節でのみ参照することができます。

ユーザー定義の行関数は、ユーザー定義タイプの変形関数として登録しておく場合に限り、 暗黙的に参照できます。

ユーザー定義関数は、 修飾または無修飾の関数名およびその後に括弧で囲んだその関数の引き数を指定することによって参照します。

関数の引き数の数および位置は、 データベースに登録された時点のユーザー定義関数に指定されたパラメーターと対応していなければなりません。 さらに、引き数は、対応する定義済みパラメーターのデータ・タイプにプロモート可能なデータ・タイプでなければなりません (CREATE FUNCTIONを参照)。

関数の結果は、 そのユーザー定義関数が登録された時点で指定された RETURNS 文節に指定されたとおりです。 RETURNS 文節は、関数が表関数であるか否かを決定します。

関数登録時に RETURNS NULL ON NULL INPUT 文節が指定されていると (あるいはデフォルト解釈されると)、 引き数のいずれかがヌル値の場合には、結果はヌル値になります。 表関数の場合、これは、戻される表が行を含まない (空表) という意味に解釈されます。

SYSFUN スキーマには、 一群のユーザー定義関数が用意されています (表 15 を参照)。

例:


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