コンストラクタ メソッドを呼び出してSTRUCTURED型UDTの新規インスタンスを作成および初期化し、DISTINCT型またはSTRUCTURED型UDTの既存インスタンスに対してインスタンス メソッドを呼び出します。
引数リスト
メソッド呼び出しの引数は、式をCREATE TYPE文のMETHOD指定のパラメータと同じ順序で、カンマで区切って指定する必要があります。
メソッド呼び出しの引数は、既存メソッドのメソッド定義のパラメータ宣言と互換性がなければならず、情報を失うことなく互換データ型に適合するものでなければなりません。例えば、メソッド呼び出しのBYTEINT引数は、メソッド定義のINTEGERパラメータ宣言と互換性があり、情報が失われることなくINTEGER型に入れることができます。
対応するパラメータ型と互換性のない引数を渡すには、メソッドの呼び出し時に明示的にその引数を適切なデータ型に変換する必要があります。
NULLキーワードは、任意のデータ型のパラメータと互換性があります。リテラル引数としてのNULLの動作の詳細については、引数の動作のリテラル引数としてNULLを使用する場合の動作を参照してください。
互換データ型と優先順位ルールについての詳細は、UDMのパラメータの互換データ型を参照してください。
RETURNS句とRETURNS STYLE句
TD_ANYTYPE戻りパラメータを使用して定義したUDFを呼び出すときには、RETURNSdata typeの句、またはRETURNS STYLEcolumn expressionの句を使用すると、必要な戻り値の型を指定できます。この列式は、有効なテーブルまたはビューの列参照にすることができます。また、戻り値のデータ型は、列の型に応じて決定されます。
RETURNS句またはRETURNS STYLE句は、TD_ANYTYPE入力パラメータがメソッドにも含まれている場合は必須ではありません。RETURNS句またはRETURNS STYLE句を指定していないときには、TD_ANYTYPEの戻りパラメータの型を決定するために、最初のTD_ANYTYPE入力引数のデータ型が使用されます。文字型の場合、データ型の一部として文字セットが指定されていないときには、デフォルトの文字セットが使用されます。
RETURNS句やRETURNS STYLE句を使用する場合は、UDM呼び出しを括弧で囲む必要があります。
メソッドの選択
CREATE TYPE文中でMETHOD指定を使用すると、データベースはUDT名、メソッド名、およびメソッド パラメータ リストを使用して、次のような内部メソッド名およびパラメータ リストを作成します。
method_name(UDT_name, parameter_1 … , parameter_n)
同じように、UDTに対してメソッドを呼び出すと、データベースはUDT名、メソッド名、およびメソッド引数リストを使用して、次のような内部メソッド名および引数リストを作成します。
method_name(UDT_name, argument_1 … , argument_n)
Teradata Databaseは、データベースの中で、メソッド呼び出しの内部メソッドおよび引数リストに一致する内部メソッドおよびパラメータ リストを検索します。
そのようなメソッドの存在 | 結果 |
---|---|
そのようなメソッドが存在し、メソッド呼び出しの引数がそのメソッドのパラメータと互換であり、優先順位に従っている場合 | 検索はそこで停止します。 同じ名前の複数のメソッドが存在する場合、Teradata Databaseは、複数のUDFに同一名が付いている場合にどの関数を呼び出すかを決めるために使用するのと同じルールに従って、どのメソッドを呼び出すかを決めます。 詳細は、オーバーロード関数の呼び出しを参照してください。 |
そのようなメソッドが存在しない場合、またはメソッド呼び出しの引数がそのメソッドのパラメータと互換性がない場合 | その文はエラーを戻します。 |
互換性優先順位のルールについては、UDMのパラメータの互換データ型を参照してください。
オーバーロード メソッドの呼び出し
同じ名前の複数のUDMが存在する場合、Teradata Databaseは、複数のUDFに同一名が付いている場合にどの関数を呼び出すかを決めるために使用するのと同じルールに従って、どのメソッドを呼び出すかを決めます。
詳細は、オーバーロード関数の呼び出しを参照してください。
関連トピック
詳細情報 | 参照先 |
---|---|
インスタンス メソッドおよびコンストラクタ メソッドを呼び出すサンプルSQL文 |
|
インスタンス メソッドとコンストラクタ メソッド呼び出しの構文 | Teradata Vantage™ - SQL演算子およびユーザー定義関数、B035-1210 |
NEW式を使用したUDTインスタンスの作成 | |
インスタンス メソッドおよびコンストラクタ メソッドの呼び出しに適用される制限事項 |