Java外部ルーチンからの例外処理 - 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

Teradata DatabaseがJava外部ルーチンから例外を受け取ったときに適用される処理ルールは次のとおりです。

例外のクラス 结果
SQLExceptionではない場合 Teradata DatabaseはSQLSTATEの値として38000を返します。例は次のとおりです。
*** Failure: Statement = 1  Info 0
      Code 7828: Unexpected Java Exception SQLSTATE 38000:
An java.lang.NullPointerException exception was thrown.

この状態は、一般に外部ルーチンで例外を取得できなかった場合に起こります。

SQLExceptionの場合 SQLStateフィールドが5桁であれば、最初の2桁は38となり、Teradata DatabaseはSQLSTATE値を返します。サンプルは次のとおりです。
SEL o_id, std_dev(o_amount);
FROM orders;

*** Failure 7825 in UDF/XSP/UDM UDFExample.std_dev:
SQLSTATE 38U01:  User Exception Text.

これは、UDFから正しく返されたエラーと考えられます。

SQLStateフィールドが範囲外の場合、Teradata DatabaseはSQLSTATEの値として39001を返します。サンプルは次のとおりです。

SEL o_id, std_dev(o_amount);
FROM orders;

*** Failure 7827 Java SQL Exception SQLSTATE 39001: Invalid
SQL state (45100).