17.10 - 関数呼び出し引数 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 詳細トピック

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1184-171K-JPN
Language
日本語 (日本)

関数呼び出し引数は、すべての単純なSQL式であり、定数値、列参照、ホスト変数、NEW VARIANT_TYPE UDTコンストラクタ式(<Teradata Vantage™ - SQL演算子およびユーザー定義関数、B035-1210>を参照)、またはこれらのいずれかを含む式(UDFを含む式など)、その他を含んでいます。

DMLリクエストからTeradataの行レベル セキュリティ ポリシー関数を呼び出すことはできません。Teradata行レベル セキュリティ ポリシー関数は、CREATE TABLEリクエストまたはALTER TABLEリクエストの列定義のみを使用して指定できます。

関数を呼び出すとき、その関数がデフォルト データベースまたはデータベースSYSLIBのいずれにも保存されていない場合は、その関数呼び出しをデータベース名で完全修飾しなければなりません。デフォルト データベースおよびSYSLIBの両方に、呼び出された関数の名前と一致する関数が含まれている場合、デフォルト データベース内のUDFがシステムによって参照されます。SYSLIBを明示的に修飾する必要がある状況は、これだけです。

呼び出しに渡される引数のデータ型は、既存の関数の関数宣言に含まれるパラメータ宣言と互換性がなければなりません。同じ名前の関数が複数存在する場合、修飾するデータベースが指定されていなければ、呼び出される関数は以下のプロセスで判別されます。

  1. 組み込み関数のリストが検索されます。

    呼び出された関数の名前がVantageの組み込み関数と同じであれば、検索は中止されてその関数が使用されます。

    候補の関数が見つからない場合は、ステップ2に進みます。

  2. デフォルト ユーザー データベースにある関数名のリストが検索されます。

    関数呼び出しで指定されたものと同じ名前およびパラメータ数の関数、およびそのパラメータ タイプに基づく最適な指定を持つ関数が候補となります。

    候補の関数が見つからない場合は、ステップ3に進みます。

  3. SYSLIBデータベースに含まれる関数名のリストが検索されます。

    関数呼び出しで指定されたものと同じ名前およびパラメータ数の関数、およびそのパラメータ タイプに基づく最適な指定を持つ関数が候補となります。

    候補の関数が見つからない場合は、エラーが返されます。

所属先データベースの判別後、そのデータベースに含まれるユーザー定義関数の中から最適な候補を選択する際のルールについては、関数のオーバーロードで説明しています。