1. ホーム
  2. sql

[解決済み] 3を挿入すると「ORA-01438: この列で許容される指定精度より大きい値」と表示される。

2022-02-06 14:10:18

質問

NUMBER (2,2)という書式のフィールドに0以外の数字を挿入しようとすると、このエラーに遭遇します。

UPDATE
    PROG_OWN.PROG_TPORCENTAJE_MERMA
SET
    PCT_MERMA = 3
WHERE
    IDN_PORCENTAJE_MERMA = 1

[エラーコード: 1438, SQLステート: 22003] ORA-01438: この列では指定した精度より大きな値が許可されています。

COLUMN_NAME DATA_TYPE   TYPE_NAME   COLUMN_SIZE   BUFFER_LENGTH   DECIMAL_DIGITS
PCT_MERMA   3           NUMBER      2             0               2

また、10進数で試してみても同じことが起こります。

何か思い当たることはありますか?

解決方法は?

データ型が1より大きい数値の場合は更新できません。 number(2,2) というのも、最初のパラメータは数値の総桁数で、2番目のパラメータ(ここでは2)は小数部の桁数だからです。データの挿入や更新ができるのは < 1 .すなわち、0.12、0.95など。

のNUMBER DATATYPEを確認してください。 NUMBER データ型 .