17.00 - 17.05 - スカラー関数パラメータ スタイルSQLの構文 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQL外部ルーチン プログラミング

Product
Advanced SQL Engine
Teradata Database
Release Number
17.00
17.05
Published
2020年6月
Content Type
プログラミング リファレンス
Publication ID
B035-1147-170K-JPN
Language
日本語 (日本)
void function_name ( type_1      *input_parameter_1,
                      ...,
                     type_n      *input_parameter_n,
                     result_type *result,
                     int         *indicator_parameter_1,
                      ...,
                     int         *indicator_parameter_n,
                     int         *indicator_result,
                     char         sqlstate[6],
                     SQL_TEXT     function_name[m],
                     SQL_TEXT     specific_function_name[l],
                     SQL_TEXT     error_message[p] )
{
     ...
}

説明

パラメータ 指定内容 入力/ 出力
type_n * input_parameter_n 入力パラメータ。nはCREATE FUNCTION定義に含まれるパラメータの数です。n = 0なら、入力パラメータはありません。このデータ型は、sqltypes_td.h内のCデータ型のうち、入力引数のSQLデータ型に対応するものです。

入力パラメータの数は最大128個です。

入力
result_type * result 結果。

resultは、関数の戻す結果を入れる十分な大きさのデータ領域へのポインタです。そのデータ領域は、対応するCREATE FUNCTION文のRETURNS句で定義されるものです。

出力
int * indicator_parameter_n 入力パラメータに同じ順序で対応するインジケータ パラメータ(n > 0の関数の場合)。

インジケータ引数の値。

  • -1であれば、対応する入力引数はNULLです。
  • 0であれば、対応する入力引数は値です。
入力
int * indicator_result 結果に対応する結果インジケータ パラメータ。 出力
char sqlstate[6] 成功、例外、または警告を示す戻り値。これは、6文字のC文字列へのポインタです(最初の5文字はASCII、最後の文字はCのNULL文字)。関数でエラーを検出した場合、関数でsqlstateをSQLSTATEの例外または警告に設定できます。

この文字列の初期値は'00000' (成功)です。

SQLSTATE値の詳細は、SQLSTATEの値を戻すを参照してください。

出力
SQL_TEXT function_name[m] 関数名。これはC文字列へのポインタです。これは、CREATE FUNCTION function_nameで指定される関数名と同じ名前です。

関数の中では、この名前を使用してエラー メッセージを作成できます。

ANSI SQL標準では、mの最大値は128と定義されています。Teradata Databaseでは、関数名は最大30文字です。

入力
SQL_TEXT specific_function_name[l] 同じ名前の関数が複数個ある場合、呼び出す外部関数の特定名。これはC文字列へのポインタです。これは、CREATE FUNCTION文のSPECIFIC句で指定する特定名と同じ名前です。

CREATE FUNCTION文にSPECIFIC句が含まれていない場合、この名前は、CREATE FUNCTION function_nameで指定される関数名と同じです。

関数の中では、この名前を使用してエラー メッセージを作成できます。

ANSI SQL標準では、lの最大値は128と定義されています。Teradata Databaseでは、関数名は最大30文字です。

入力
SQL_TEXT error_message[p] エラー メッセージのテキスト。これは、C文字列へのポインタであり、pの最大値は256です。 出力