例: NULLを扱うためのデフォルトのパラメータ マッピングの上書き - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQL外部ルーチン プログラミング

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/qwr1571437338192.ditamap
dita:ditavalPath
ja-JP/qwr1571437338192.ditaval
dita:id
B035-1147
Product Category
Software
Teradata Vantage

以下に、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.jarUDFExampleクラスをデータベースに登録し、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';