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

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

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/rop1530578142648.ditamap
dita:ditavalPath
ja-JP/rop1530578142648.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ハンドラまたは特定条件ハンドラーだけです。