例: SQLSTATE結果コードの値を返す - Teradata Database - Teradata Vantage NewSQL Engine

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

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/uhh1512082756414.ditamap
dita:ditavalPath
ja-JP/uhh1512082756414.ditaval
dita:id
B035-1147
Product Category
Software
Teradata Vantage

下記の標準偏差集約関数について考えてみましょう。

void STD_DEV ( FNC_Phase     phase,
               FNC_Context_t *fctx,
               FLOAT         *x,
               FLOAT         *result,
               char          sqlstate[6] )
{
     ...
}

SQLSTATE結果コード値を戻すには、sqlstate引数を使用します。

例えば、phase引数の値が有効な集約フェーズでないなら、sqlstate引数を次のように設定することにより、データ例外を戻すことができます。

strcpy(sqlstate, "U0005");

BTEQセッションにおいて、この例外は下記の形式で表示されます。ここで、dbnameはこの関数の属するデータベースの名前です。

*** Failure 7504 in UDF/XSP  dbname.STD_DEV: SQLSTATE U0005: