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). |