17.00 - 17.05 - TD_ANYTYPE引数を使用する外部ストアド プロシージャ - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.00
17.05
Published
2020年6月
Content Type
プログラミング リファレンス
Publication ID
B035-1147-170K-JPN
Language
日本語 (日本)

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パラメータのデータ型は、対応する入力引数のデータ型によって決まります。