17.05 - method_clause - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 構文規則および例

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

メソッドの呼び出し名。

名前にマルチバイト文字を含むオブジェクトがデータベースのUDFライブラリにある場合、新規オブジェクト名に1バイト文字のみが含まれる場合でも、1バイトのセッション文字セットを使用して、新たなUDF、UDT、メソッドを作成することはできません。代わりにマルチバイトのセッション文字セットを使用します。以下のトピックについての関連情報は、<Teradata Vantage™ - SQLデータ定義言語 - 詳細トピック、B035-1184>で、CREATE FUNCTIONおよびREPLACE FUNCTIONの外部形式を参照してください。
  • 関数識別子
  • 関数名
  • 関数呼び出し引数
  • 関数名のオーバーロード
  • パラメータ名とデータ型
INSTANCE
オブジェクトはインスタンス メソッドです。
INSTANCEがデフォルトです。
CONSTRUCTOR
このオブジェクトは、コンストラクタ メソッドです。
SYSUDTLIB
method_nameは、SYSUDTLIBデータベース内で固有である必要があります。SYSUDTLIBデータベースに含まれる既存のメソッドまたはその他のデータベース オブジェクトと同じ名前をメソッドに付けることはできません。
method_name
specific_method_nameまたはexternal_method_nameを指定しない場合、method_nameはそのC/C++のメソッド名のスペルと大文字小文字の区別に正確に一致している必要があります。これは、メソッドの定義のみで、メソッドの使用には当てはまりません。
データベース オブジェクトの命名ルールについては、<Teradata Vantage™ - SQLの基本、B035-1141>を参照してください。
同じクラス内で同じmethod_nameを持つ別々のメソッドの識別には、パラメータのデータ型とパラメータの数が使用されます。
関数のオーバーロードの詳細については、<Teradata Vantage™ - SQL外部ルーチン プログラミング、B035-1147>を参照してください。
parameter_name
メソッドが受け入れる最大パラメータ数は128です。
関数に渡すパラメータがない場合でも、右括弧と左括弧を指定する必要があります。
パラメータ名を1つ指定する場合は、関数に渡すすべてのパラメータの名前を指定する必要があります。
パラメータ名を指定しない場合、システムはパラメータにP1、P2、...、Pnの形式で固有名を割り当てます。 これらの名前はCOMMENT文で使用され、HELP METHOD文で生成されるレポートに表示され、エラー メッセージのテキストに表示されます。 COMMENT(コメント配置形式)HELP METHODを参照してください。
data_type
関数に渡す変数のデータ型とオプションのパラメータ名の括弧に入れたカンマ区切りのリスト。
各パラメータに関連付けられたデータ型は、パラメータまたは戻り値の型です。Vantageのすべての事前定義データ型とUDTが有効です。
文字データは、CHARACTER SET句も指定できます。
BYTE、CHARACTER、DECIMAL、VARCHARなど、長さやサイズを指定するデータ型では、パラメータのサイズが、渡すことのできる最大バイト数になります。
UDT_name
UDTを指定する場合、メソッドの現在のユーザーには、以下の権限セットのいずれかがなければなりません。
  • SYSUDTLIBデータベースに対するUDTMETHOD、UDTTYPE、またはUDTUSAGE。
  • 指定されたUDTに対するUDTUSAGE権限。
AS LOCATOR
BLOB型とCLOB型は、ロケータで表わす必要があります。Vantageは、メモリ内LOBパラメータをサポートしていません。LOBパラメータと戻り値ごとにAS LOCATOR句を指定する必要があります。ロケータの説明については、<Teradata Vantage™ - SQLデータ操作言語、B035-1146>を参照してください。
ただし、データ型変換を必要とするLOBをメソッドに渡すときには、変換を行なうために常にLOBを実体化する必要があります。
FOR [SYSUDTLIB.]UDT_name
このメソッドが適用されるUDTの名前。
この句は特定メソッドには使用しないでください。