関数とは、指定されたいくつかの入力値に対して 1 つの値を算出する ESQL 構成です。
関数には、普通は入力パラメーターがあり、また出力パラメーターも使用できますが普通はありません。関数は、ステートメントで記述されたアルゴリズムによって計算された値を戻します。このステートメントは、普通は BEGIN... END などの複合ステートメントです。なぜなら、複合ステートメントを使用すると、無制限の数のネストされたステートメントを使用してアルゴリズムをインプリメントできるからです。
ESQL では、式で自由に使用できる事前定義つまり "組み込み" 関数が多く備えられています。CREATE FUNCTION ステートメントを使用して独自の関数を定義することもできます。
関数を定義する場合、固有の名前を指定する必要があります。名前には、大/小文字の区別がありません (つまり、大/小文字の任意の組み合わせで名前を使用しても、宣言と一致します)。これは、スキーマ、定数、変数、およびラベルに対して宣言する名前とは対照的です。それらの場合には、大/小文字の区別を付けて扱われ、宣言したのと同じに正確に指定する必要があります。
次の ESQL プログラムの断片をご覧ください。
SET Diameter = SQRT(Area / 3.142) * 2;
この例では、関数 SQRT (平方根) に、続く大括弧の中に示されている値 (それ自体が除算という 1 つの式の結果) が与えられており、その結果がさらに式 (乗算) の中で使用されます。その戻り値は、変数 Diameter に割り当てられます。すべての組み込み ESQL 関数については、ESQL 関数の呼び出しを参照してください。
EVAL ステートメントまたは EVAL 関数で、関数を定義することはできないことに注意してください。