関数に渡される変数のオプションのパラメータ名とロケータ。UDT列の圧縮/圧縮解除に使用する関数では、入力パラメータを1つだけ使用できます。そのパラメータのデータ型は、サポートされているUDTデータ型であれば、どれでもかまいません。
データベース オブジェクトの命名ルールについては、<Teradata Vantage™ SQL基礎、B035-1141>を参照してください。
関数に渡すパラメータがない場合でも、右括弧と左括弧を指定する必要があります。
UDFが受け入れる最大パラメータ数は128です。
パラメータ名はUDF定義内で固有でなければなりません。 パラメータ名を1つ指定する場合は、関数に渡すすべてのパラメータの名前を指定する必要があります。 UDFパラメータの名前にキーワードSELFを使用することはできません。 パラメータ名を指定しない場合、Teradata DatabaseはP1、P2、…、Pnの形式でパラメータに固有名を割り当てます。 これらの名前はCOMMENT文で使用され、HELP FUNCTION文で生成されるレポートに表示され、エラー メッセージのテキストに表示されます。 COMMENT(コメント配置形式)とHELP FUNCTIONを参照してください。
UDT列の圧縮に使用するアルゴリズム圧縮関数のパラメータのデータ型は、対応する圧縮解除関数のRETURNSデータ型と完全に一致している必要があります。アルゴリズム圧縮関数のデータ型も圧縮対象のUDT列のデータ型と一致している必要があります。
パラメータ型がUDTのUDFは、SYSLIBではなくSYSUDTLIBに存在している必要があります。
- data type
- UDTを含む括弧に入れたカンマ区切りのデータ型のリスト。データ型は、同じ名前でオーバーロードされた関数を区別するために必要になります。
- VARIANT_TYPE
- システム定義のパラメータ型VARIANT_TYPEを関数の入力パラメータのデータ型として指定することもできます。VARIANT_TYPEでは、あらゆるシステム定義型を使用できます。その属性は、関数の実行時に決定されます。VARIANT_TYPEパラメータ データ型の詳細は、<Teradata Vantage™データ タイプおよびリテラル、B035-1143>を参照してください。
- TD_ANYTYPE
- システム定義のデータ型TD_ANYTYPEでは、あらゆるシステム定義のデータ型を使用できます。その属性は、関数の実行時に決定されます。VARIANT_TYPEパラメータ データ型の詳細は、<Teradata Vantage™データ タイプおよびリテラル、B035-1143>を参照してください。C、C++、またはJavaルーチンの記述にTD_ANYTYPEを使用する方法の詳細は、<Teradata Vantage™ SQL外部ルーチン プログラミング、B035-1147>を参照してください。
入力パラメータ値および行レベル セキュリティ
行レベル セキュリティ ポリシー制約で定義されるすべての入力パラメータ値には、名前が付いていなければなりません。セキュリティ制約ポリシーUDFは、その制約が定義されている表で対応するリクエスト タイプが実行されるたびに、Teradata Databaseによって自動的に呼び出されます。Teradata Databaseは、関数の入力パラメータ値を自動的に生成するので、ソースを知っていなければなりません。入力パラメータ名は、パラメータのソースとして定義されています。
各UDFで使用できる入力パラメータは、制約オブジェクトで定義されているUDFのステートメント アクションによって異なります。
アクション | パラメータ | 必須 |
---|---|---|
SELECTまたはINSERT | CURRENT_SESSION | はい |
列名またはUDT | いいえ | |
UPDATE | CURRENT_SESSION | はい |
INPUT_ROW | はい | |
UDT名 | いいえ | |
DELETE | INPUT_ROW | はい |
列名またはUDT | いいえ |
次のパラメータ名をパラメータのソースとして指定することもできます。パラメータ名は、Teradata Databaseによってセキュリティ ポリシーUDFに提供される入力が、指定されたDELETE文、INSERT文、SELECT文、またはUPDATE文のアクションによって定義されるソースからの制約値であることを意味しています。
- CURRENT_SESSION
- このパラメータ名では、パラメータのソースを、UDFの適用先の制約のセッションで現在設定されている値として定義します。
- INPUT_ROW
- このパラメータ名では、パラメータのソースを、リクエストの対象行の対応する制約列の値として定義します。