以下に、SQL INTEGER型のパラメータをjava.lang.IntegerクラスにマッピングするUDFのJavaメソッドの実装方法を示すコードの例を示します。このメソッドは入力引数に指定されたNULL値と戻り値のNULL値を処理できます。
public class UDFExample {
public static Integer fact( Integer x ) {
if (x == null)
return null;
int x_t = x.intValue();
if (x_t < 0)
return new Integer(0);
int factResult = 1;
while (x_t > 1) {
factResult = factResult * x_t;
x_t = x_t - 1;
}
return new Integer(factResult);
}
...
}
UDFExampleクラスのJARファイルがUDFExample.jarという名前の場合、以下の文は、UDFExample.jarとUDFExampleクラスをデータベースに登録し、JARファイルに対してJarUDFと呼ばれるSQL識別子を作成します。
CALL SQLJ.INSTALL_JAR('CJ!udfsrc/UDFExample.jar','JarUDF',0);
UDFを定義するための対応するCREATE FUNCTION文は、以下のようになります。
CREATE FUNCTION factorial (x INTEGER) RETURNS INTEGER LANGUAGE JAVA NO SQL PARAMETER STYLE JAVA CALLED ON NULL INPUT EXTERNAL NAME 'JarUDF:UDFExample.fact(java.lang.Integer) returns java.lang.Integer';