個々の条件ハンドラーの優先順位 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLストアド プロシージャおよび埋め込みSQL

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

ストアド プロシージャには、汎用条件ハンドラーと特定条件ハンドラ(特定のSQLSTATEコードや条件名によって定義された特定の条件を処理するハンドラ)を備えることができます。特定条件ハンドラーと、それに似通った条件を処理するための汎用条件ハンドラーを備えたストアド プロシージャでは、特定条件ハンドラーが優先されます。このような場合には、以下のルールが適用されます。

  • SQLEXCEPTIONハンドラーと例外条件用の特定のハンドラーの両方をストアド プロシージャに指定した場合。
    発生した例外 実行されるハンドラー アクション
    ハンドラーに指定されたSQLSTATE値のいずれかと一致する場合 その特定の条件ハンドラーに定義されたアクション
    ハンドラーに指定された条件名のいずれかと一致する場合 その特定の条件ハンドラーに定義されたアクション
    どのハンドラーに指定された特定のSQLSTATEコードまたは条件名とも一致しない場合 汎用の例外条件ハンドラーに定義されたアクション
  • SQLWARNINGハンドラーと完了条件用の特定のハンドラーの両方を指定した場合。
    発生した条件 実行されるハンドラー アクション
    ハンドラーに指定されたSQLSTATE値のいずれかと一致する場合 その特定の条件ハンドラーに定義されたアクション
    ハンドラーに指定された条件名のいずれかと一致する場合 その特定の条件ハンドラーに定義されたアクション
    どのハンドラーに指定された特定のSQLSTATEコードまたは条件名とも一致しない場合 汎用完了条件ハンドラーに定義されたアクション
  • NOT FOUNDハンドラーと「no data found」完了条件用の特定のハンドラーの両方を指定した場合。
    「no data found」条件が発生した場合のSQLSTATE値 実行されるハンドラー アクション
    特定完了条件ハンドラーのいずれかに一致した場合 その特定完了条件ハンドラーに定義されたアクション
    特定条件ハンドラーのどれにも一致しない場合 汎用のNOT FOUND条件ハンドラーに定義されたアクション
  • 完了条件の「no data found」は、他のどの汎用完了条件よりも優先されます。「no data found」完了条件を処理できるのは、汎用のNOT FOUNDハンドラまたは特定条件ハンドラーだけです。