22003: numeric_value_out_of_range
PostgreSQL意味
数値が対象の型で許容される範囲外である。例えば integer 列への 20 億を超える値の書き込みや、numeric(5,2) 列には大きすぎる数値。
原因
smallint/integer/bigint の上限超過、numeric(p,s) の精度/位取りの超過、算術オーバーフロー、合計/積が型の容量を超える、シーケンス が型の上限に到達。
対処方法
列/パラメータをより広い型に変更する (integer の代わりに bigint、numeric の精度を上げる): ALTER TABLE my_table ALTER COLUMN my_column TYPE bigint; 業務ルールに従って値を丸める (ROUND) か検証する。中間計算がオーバーフローする場合は式を numeric で計算する。シーケンス のオーバーフローには型を広げる。