SQL UDFがSQL結果コードを処理する方法 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 詳細トピック

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
ft:locale
ja-JP
ft:lastEdition
2021-03-30
dita:mapPath
ja-JP/jpx1556733107962.ditamap
dita:ditavalPath
ja-JP/jpx1556733107962.ditaval
dita:id
B035-1184
Product Category
Software
Teradata Vantage

ANSI SQL:2011規格は、状況コード メッセージを受け入れるSQLSTATEという名前の戻りコード変数を定義しています。すべての条件メッセージは、この変数に標準ASCII文字列形式で返されます。

すべてのSQLSTATEメッセージの長さは5文字です。最初の2文字はメッセージ クラスを定義し、最後の3文字はメッセージ サブクラスを定義します。

例えば、SQLSTATE戻りコード'22021'の場合を考察します。このメッセージのクラス22は、データ例外条件を示します。サブクラス021は、定義済みの目録に含まれていない文字が検出されたことを示します。

SQL警告はしリクエストをアボートないが、SQL例外はリクエスト アボートをしたことに注意する必要があります。

UDFが常に有効なSQLSTATEコードを返すことを確認してください。Teradata Databaseは、SQL UDFによって返されるSQLSTATE値を同等のSQLCODE値にマップしません。SQL UDFによって生成されるすべてのSQLSTATEコードは、以下の表が示すとおり、Teradata Databaseのメッセージに明示的にマップされます。

UDFが返すSQL戻りコードのタイプ システムがそのコードをマップするエラー メッセージ 表示する形式
警告 7505 *** Warning 7505 in dbname.udfname: SQLSTATE 01Hxx:
例外 7504 *** Error 7504 in dbname.udfname: SQLSTATE U0xxx:

SQLの例外および警告コードの詳細について、<Teradata Vantage™ - SQLの基本、B035-1141>を参照してください。

SQLSTATEおよびSQLCODEの結果コードの詳細について、<Teradata Vantage™ - SQLストアド プロシージャおよび埋め込みSQL、B035-1148>を参照してください。