2017年8月30日水曜日

Oracle numberの精度について

以前の職場で、
ORA-01438: 指定した精度を超えた値が列に指定されています"
のエラーが発生。

内容を確認したところ、どうやらテーブルにあるnumber型項目に格納できる精度を超えたためエラーとなっていた。

number型について復習しておく。

参考サイト

number型は、全体の桁数と小数点以下の桁数を指定することもできます。

テーブル定義でいうとnumber(8,3)みたいな場合、全体桁数が8で、そのうち小数桁数が3桁となる。つまり、整数部は8-3=5桁となる。

しかし、今回の発生した内容はこの整数部5桁の項目に6桁を格納(Insert)してエラーとなっていた。

まあ、本来は入口(アプリ)でチェックしてそのような値を許さないようにしないといけませんね。

0 件のコメント:

コメントを投稿