language_clause - Teradata Database - Teradata Vantage NewSQL Engine - language_clause オプション、CREATE FUNCTION(テーブル形式)SQL文。

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/wkf1512081455740.ditamap
dita:ditavalPath
ja-JP/wkf1512081455740.ditaval
dita:id
B035-1144
Product Category
Software
Teradata Vantage

外部関数の記述に使用するプログラミング言語を表わすコード。

これはすべての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';