外部関数の記述に使用するプログラミング言語を表わすコード。
これはすべてのUDFの必須属性です。
外部UDFの作成に有効な言語はC、C++、およびJavaです。
外部関数オブジェクトがC、C++、またはJavaで作成されていない場合は、そのオブジェクトがC、C++、またはJavaオブジェクト コード互換である必要があります。
<Teradata Vantage™ SQLデータ定義言語 - 詳細トピック、B035-1184>の「CREATE FUNCTION/REPLACE FUNCTION」のトピック「LANGUAGE句」を参照してください。
- C
- 外部関数がオブジェクト形式の場合も、外部関数はCで記述されます。
- CPP
- 外部関数がオブジェクト形式の場合も、外部関数はC++で記述されます。
- JAVA
- 外部関数は、Javaで記述されます。
- SAS
- 外部関数は、SQLTABLEパラメータ形式を使用する必要があるSASで記述されています。
例: JavaテーブルUDF
次の例は、テーブル関数の定義を作成する2つの異なる方法を示しています。関数の動作は同じです。
この例でのJavaメソッド シグネチャのVOID戻り型と戻りパラメータ データ型の使用方法に注意してください。これらは、スカラーUDFと集約UDFとで異なります。このような違いは、テーブルUDFから複数の列値が返される可能性があるため必要です。
CREATE FUNCTION mytableudf ( p1 INTEGER ) RETURNS TABLE (c1 INTEGER, c2 INTEGER) LANGUAGE JAVA NO SQL PARAMETER STYLE JAVA EXTERNAL NAME 'UDF_JAR:UserDefinedFunctions.mytableudf'; public static void mytableudf(int i, int[] ret1, int[] ret2) throws SQLException CREATE FUNCTION mytableudf ( p1 INTEGER ) RETURNS TABLE (c1 INTEGER, c2 INTEGER) LANGUAGE JAVA NO SQL PARAMETER STYLE JAVA EXTERNAL NAME 'UDF_JAR:UserDefinedFunctions.mytableudf(int, int[],int[])'; public static void mytableudf(int i, int[] ret1, int[] ret2) throws SQLException
例: SASで記述したテーブル演算子関数
このテーブル演算子関数は、SQLTABLEパラメータ形式を使用するSASで記述されています。
CREATE FUNCTION sas_transform ( RETURNS TABLE VARYING USING FUNCTION LANGUAGE SAS PARAMETER STYLE SQLTABLE DETERMINISTIC RETURN 'optional SAS code text' EXTERNAL NAME 'sas_transform_udf:sas_transform_UDF.GetSASCodeText';