TD_ANYTYPE引数を使用する外部ストアド プロシージャ - 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

TD_ANYTYPEデータ型のIN、INOUT、またはOUTパラメータを使用する、外部ストアド プロシージャを定義できます。TD_ANYTYPEパラメータは、すべてのシステム定義のデータ型を受け入れることができます。UDTパラメータはJavaルーチン内でサポートされないため、UDTパラメータを表記するためにTD_ANYTYPEを使用することはできません。

このパラメータの属性と戻り値の型は、ルーチンに渡された実際の引数に基づいて、実行時に決定されます。TD_ANYTYPE型についての詳細は、<Teradata Vantage™データ型およびリテラル、B035-1143>を参照してください。

TD_ANYTYPEパラメータは、Javaルーチン内でjava.lang.Objectにマップされます。java.lang.Objectは、外部ストアド プロシージャにおいてはTD_ANYTYPEパラメータに対応するJavaパラメータ型として指定する必要があります。

例: TD_ANYTYPEパラメータ型の外部ストアド プロシージャ

ここでは、TD_ANYTYPEパラメータ型を使用したJava外部ストアド プロシージャの宣言方法の例を示します。

public static void get_smallest(java.lang.Object C1, java.lang.Object[] C2)

これに相当するSQL関数の定義を次に示します。

CREATE PROCEDURE get_smallest(IN C1 TD_ANYTYPE, INOUT C2 TD_ANYTYPE)
     LANGUAGE JAVA
     NO SQL
     PARAMETER STYLE JAVA
     EXTERNAL NAME
     'UDF_JAR:UserDefinedFunctions.get_smallest';

RETURNS句とRETURNS STYLE句

TD_ANYTYPE OUTパラメータを使用して定義した外部ストアド プロシージャを呼び出すときには、CALL文でOUT引数と共にRETURNSdata typeまたはRETURNS STYLEcolumn expressionの句を指定して、目的に適ったOUTパラメータの戻り値の型を示すことができます。 この列式は、有効なテーブルまたはビューの列参照にすることができます。また、戻り値のデータ型は、列の型に応じて決定されます。

RETURNS句またはRETURNS STYLE句は、プロシージャにもTD_ANYTYPE入力パラメータが含まれている場合は必須ではありません。 RETURNS句またはRETURNS STYLE句を指定していない場合は、OUTパラメータの戻り値の型を決定するために、最初のTD_ANYTYPE INまたはINOUT引数のデータ型が使用されます。 文字データ型の場合、データ型の一部として文字セットが指定されていないときには、デフォルトの文字セットが使用されます。

RETURNS句およびRETURNS STYLE句は、戻り型をTD_ANYTYPE OUTパラメータに設定するためにのみ使用します。 TD_ANYTYPE INOUTパラメータのデータ型は、対応する入力引数のデータ型によって決まります。