必要に応じて、関数の処理中に使用する入力テーブル、出力テーブル、パラメータを定義できます。
関数の処理中にユーザーが指定できるすべての入力テーブル、出力テーブル、およびパラメータを定義する必要があります。
例: IN TABLE、OUT TABLE、およびパラメータ オプションを使用した関数マッピングの定義を参照してください。
- ANY IN TABLE
- この句を使用すると、関数処理中にテーブル演算子ON句で指定された入力テーブル(相関名がなく、どの名前付きパラメータとも一致しない)に対応することができます。例: 複数のANY IN TABLE句を使用した関数マッピングを参照してください。
- テーブル演算子ON句で、マップされていないテーブルの代わりに名前を指定することもできます。以下の例では、関数処理中に指定されたマップされていない名前がConversionEventsに置き換えられています。
ConversionEvents(ANY) IN TABLE
- 例: (ANY) IN TABLE句置換を使用した関数マッピングを参照してください。
- name (value)
- 関数の処理中にデフォルトとして使用するパラメータと値。デフォルト値が使用されるのは、SELECT文でテーブル演算子のUSING句に値のないパラメータを指定した場合のみです。例: デフォルト値の変数を含む関数マッピング定義を参照してください。
- valueには以下を指定できます。
- リテラル値リスト
文字、数値、データ、時間、間隔、期間、およびグラフィック リテラルを指定できます。指定できるリテラルの詳細については、<Teradata Vantage™ - データ タイプおよびリテラル>を参照してください。
- スカラー サブクエリー式(SSQ)
スカラー サブクエリー式を指定できます。
スカラー サブクエリーには、システム変数を含めることができます。例えば、パラメータ
ValueColumnには、システム変数USERを含むスカラー サブクエリーによって指定されたデフォルト値があります。
ValueColumn(SELECT colname FROM ssqtbl WHERE username=USER)
例: スカラー サブクエリー(SSQ)置換を使用した関数マッピングの定義および例: システム変数を含むスカラー サブクエリー(SSQ)置換を使用した関数マッピングを参照してください。
- システム変数
指定できるシステム変数は、USER、CURRENT_USER、ROLE、CURRENT_ROLE、DATE、CURRENT_DATE、TIME、CURRENT_TIME、CURRENT_TIMESTAMP、PROFILE、DATABASE、SESSION、TD_HOST、ACCOUNT、またはZONEです。
例えば
TimeOfEntryは、CURRENT_TIMEシステム変数で指定されているように、デフォルトで現在の時刻に設定されます。
TimeOfEntry(CURRENT_TIME)
- ユーザー変数
変数はパラメータ名にすることができ、デフォルト値、デフォルト値リスト、スカラー サブクエリー、または他の変数を指定できます。
関数マッピング定義内でパラメータに指定された変数は、関数処理のためにパラメータが送信される前に解決されます。変数の値は、関数で指定されたデフォルト値または関数処理中に指定されたデフォルト値から派生できます。例: 複数の変数置換を使用した関数マッピングの定義を参照してください。
変数は、次のように入れ子にすることができます。
MaxStep(Maxnum) ,
Maxnum(Maxnumber),
Maxnumber(10),
ただし、入れ子になった変数を解決しても循環参照にはなりません。
次の例では、変数
MaxStepのデフォルト値が150です。
MaxStep (150)
この例では、変数
MaxStepは変数
maxnumに対応しています。
MaxStep(maxnum)
デフォルト値のリストを持つ変数には、連結された変数式を含めることはできません。例えば、次のような式は指定できません。
ValueColumn(AttributeValueColumn||'_'||Maxnum)
Maxnum(10,20)
ValueColumn( AttributeValueColumn, ValCol )
ValCol(ValColumn||'_'||MaxNum)
- 連結された変数式
連結演算子( | | )で区切られた文字列定数または変数のリスト。例えば、以下の
ValueColumnパラメータには、連結変数式で指定されたデフォルト値があります。
ValueColumn(AttributeValueColumn||'_'||Maxnum)
例: 連結変数置換による関数マッピングを参照してください。
連結変数式にスカラー サブクエリーを含めることはできません。
IN TABLE句およびOUT TABLE句に連結変数式を指定することはできません。
- name IN TABLE
- 関数の処理中に使用する入力テーブルの相関名。例: IN TABLEオプションを使用した関数マッピングの定義を参照してください。
- また、関数の処理中に別の名前を使用できるように、代替名を指定することもできます。以下の例では、関数処理のテーブル変換の代わりにテーブルConversionEventsが使用されています。
ConversionEvents(conversion) IN TABLE
- 例: IN TABLE句置換を使用した関数マッピングの定義を参照してください。
- 他の関数パラメータのパラメータまたは値としてIN TABLE句の変数を指定することはできません。
- 複数のIN TABLE句に同じ変数名を指定することはできません。
- ANY IN TABLE句を使用する場合は、ANYを値として指定することはできません。
- IN TABLE句には次を含めることはできません。
- 連結された変数式
- スカラー サブクエリー式(SSQ)
- デフォルト値
- 入れ子の値
- name OUT TABLE
- 関数処理中に使用する出力テーブルの名前。代わりの名前を指定して、関数処理中に別の名前を使用できるようにすることもできます。例: OUT TABLE句に置換を含む関数マッピング定義を参照してください。
- 次のように、OUT TABLEパラメータを入れ子にすることができます。
ModelTable(model_table) OUT TABLE ,
model_table(md_tbl) OUT TABLE
- 他の関数パラメータのパラメータまたは値としてOUT TABLE句の変数を指定することはできません。
- 複数のOUT TABLE句に同じ変数名を指定することはできません。
- OUT TABLE句には次を含めることはできません。
- 連結された変数式
- スカラー サブクエリー式(SSQ)
- デフォルト値