例: オーバーロード関数 - Teradata Database - Teradata Vantage NewSQL Engine

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

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/uhh1512082756414.ditamap
dita:ditavalPath
ja-JP/uhh1512082756414.ditaval
dita:id
B035-1147
Product Category
Software
Teradata Vantage

UDFExampleクラスにあるget_randomという名前のオーバーロードされた次のJavaメソッドについて見てみましょう。

public class UDFExample {

   ...

   public static int get_random( int some_value ) {
     ...
   }
   
   public static int get_random( java.sql.Date some_value ) {
     ...
   }

   ...
   
}

メソッド名は同じですが、some_valueパラメータのデータ型が異なります。

UDFExampleクラスのJARファイルがUDFExample.jarという名前の場合、以下の文は、UDFExample.jarUDFExampleクラスをデータベースに登録し、JARファイルに対してJarUDFと呼ばれるSQL識別子を作成します。

CALL SQLJ.INSTALL_JAR('CJ!C:\udfsrc\UDFExample.jar','JarUDF',0);

今度は、UDF_RANという名前のスカラーUDFのオーバーロードを行なう次の関数定義について見てみましょう。

CREATE FUNCTION UDF_RAN(SomeValue INTEGER)
RETURNS INTEGER
LANGUAGE JAVA
NO SQL
PARAMETER STYLE JAVA
EXTERNAL NAME 'JarUDF:UDFExample.get_random(int)';

CREATE FUNCTION UDF_RAN(SomeValue DATE)
RETURNS INTEGER
LANGUAGE JAVA
NO SQL
PARAMETER STYLE JAVA
EXTERNAL NAME 'JarUDF:UDFExample.get_random(java.sql.Date)';