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