Java外部ルーチンからの例外処理 - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/rin1593638965306.ditamap
dita:ditavalPath
ja-JP/wrg1590696035526.ditaval
dita:id
B035-1147
Product Category
Software
Teradata Vantage

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

例外のクラス 结果
SQLExceptionではない場合 Vantageは、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の場合、Vantageは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フィールドが範囲外の場合、VantageはSQLSTATEの値として39001を返します。以下に例を示します。

SEL o_id, std_dev(o_amount);
FROM orders;

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