2.18 オーバフローエラー抑止が設定されている場合の演算結果
システム定義のpd_overflow_suppressでオーバフローエラー抑止が設定されている場合は,次に示すような場合でもエラーとしないで,オーバフローが発生した演算の結果をナル値として処理を続行します。
-
除算で第2演算項の値に0を指定した場合
-
計算途中でオーバフローが発生した場合
オーバフローエラー抑止の対象を次に示します。
-
数値型のオーバフロー
-
0除算エラー
-
日付データ型のオーバフロー
-
時刻データ型のオーバフロー
-
日間隔データ型のオーバフロー
-
時間隔データ型のオーバフロー
-
ラベル付き間隔のオーバフロー
-
集合関数SUM,COUNT,COUNT_FLOAT,AVGのオーバフロー
-
ウィンドウ関数のオーバフロー
-
スカラ関数のオーバフロー(オーバフローエラー抑止の対象となるスカラ関数を次の表に示します)
表2‒106 オーバフローエラー抑止の対象となるスカラ関数 分類
スカラ関数
スカラ関数の種別
変換関数
DEGREES
システム定義スカラ関数
NUMEDIT
STRTONUM
数学関数
ABS
システム組込みスカラ関数
MOD
CEIL
システム定義スカラ関数
COSH
EXP
FLOOR
POWER
ROUND
SINH
TAN
TANH
TRUNCYEAR
日付操作
ADD_INTERVAL
NEXT_DAY
ROUNDMONTH
ただし,オーバフロー抑止が設定されていても,次の場合はエラーになるので注意してください。
-
UAP中で標識変数を指定しないでデータを受け取ろうとした場合
-
非ナル値制約のある列に対して,オーバフロー抑止によって設定されたナル値で,更新,又は挿入しようとした場合
オーバフローが発生した場合,SQL連絡領域のSQLWARNBに'W'が設定されるので,SQLWARNBを参照してオーバフローの発生の有無を確認できます。
オーバフローエラー抑止が設定されている場合の処理の例を,次に示す管理表(KANRI)を使用して説明します。